| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Redis相关 -> 正文阅读 |
|
[大数据]Redis相关 |
简介概述Redis作为一种key/value结构的数据存储系统,为了便于对数据进行进行管理,提供了多种数据类型。然后,基于指定类型存储我们项目中产生的数据,例如用户的登陆信息,购物车信息,商品详情信息等等。 常用数据类型Reids中基础数据结构包含字符串、散列,列表,集合,有序集合。工作中具体使用哪种类型要结合具体场景。 String类型操作实践字符串类型是redis中最简单的数据类型,它存储的值可以是字符串,其最大字符串长度支持到512M。基于此类型,可以实现博客的字数统计,将日志不断追加到指定key,实现一个分布式自增iid,实现一个博客的的点赞操作等 incr/incrby当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递增后的值。 语法:INCR key? ?说明,如果key不存在,则自动会创建,如果存在自动+1。 语法:INCRBY key increment decr/decrby减少指定的整数 append向尾部追加值。如果键不存在则创建该键,其值为写的value,即相当于SET key value。返回值是追加后字符串的总长度。 strlen字符串长度,返回数据的长度,如果键不存在则返回0。注意,如果键值为空串,返回也是0。 mset/mget同时设置/获取多个键值 小节
Hash类型应用实践Redis散列类型相当于Java中的HashMap,实现原理跟HashMap一致,一般用于存储对象信息,存储了字段(field)和字段值的映射,一个散列类型可以包含最多232-1个字段。 hset/hgetHSET和HGET赋值和取值 HSET key field?value? ? ? ? ? ? ? ? ?HGET key field HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0。 hincrby没有hdecrby自减命令执行会出错 hmset/hmgetHMSET和HMGET设置和获取对象属性 hexists属性是否存在 hdel删除属性 hkeys/hvals只获取字段名HKEYS或字段值HVALS 小节
List类型应用实践Redis的list类型相当于java中的LinkedList,其原理就就是一个双向链表。支持正向、反向查找和遍历等操作,插入删除速度比较快。经常用于实现热销榜,最新评论等的设计。 lpush在key对应list的头部添加字符串元素 其中,Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推 rpush在key对应list的尾部添加字符串元素 del删除 linsert在key对应list的特定位置之前或之后添加字符串元素 lset设置list中指定下标的元素值(一般用于修改操作) lrem从key对应list中删除count个和value相同的元素,count>0时,按从头到尾的顺序删除 ltrim保留指定key 的值范围内的数据 lpop从list的头部删除元素,并返回删除元素 rpop从list的尾部删除元素,并返回删除元素 llen返回key对应list的长度 lindex返回名称为key的list中index位置的元素 rpoplpush从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的.如果第一个list是空或者不存在返回 小节如何基于redis实现一个队列结构?(lpush/rpop) Set类型应用实践Redis的Set类似Java中的HashSet,是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 sadd添加元素,重复元素添加失败,返回0 smembers获取内容 spop移除并返回集合中的一个随机元素 scard获取成员个数 smove移动一个元素到另外一个集合 sunion并集 小节
JedisJedis是Java中操作redis的一个客户端,类似通过jdbc访问mysql数据库。 第一步:从redis.io官方下载对应版本的redis.conf文件,地址如下(假如下载不下来从code上去取或者从同学那拿): https://redis.io/topics/config/ 基本指令redis进行事务控制时,通常是基于如下指令进行实现,例如:
主从同步原理分析Redis的主从结构可以采用一主多从结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。 Redis全量同步:Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下: Redis增量同步Redis增量复制是指Slave初始化后,开始正常工作时主服务器发生的写操作同步到从服务器的过程。 增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。 小节Redis的高并发跟整个系统的高并发是什么关系?
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:20:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |