Redis数据结构

Redis数据结构

redis数据结构共五类

  • string String
  • hash HashMap
  • list LinkedList
  • set HashSet
  • sorted_set TreeSet

string数据类型

单个数据存储,以key:value的形式存在
在这里插入图片描述

string数据类型的基本操作
  1. 命令 set key value
  2. 命令 get key
  3. 命令 del key
  4. 命令 mset key1 value1 key2value2 …
  5. 命令 mget key1 key2 …
  6. 命令 获取键key所对应的值的长度
strlen key
  1. 命令 追加信息到原始信息尾部
append key value
string 数据类型的扩展操作

string在redis内部存储默认是字符串,当遇到增减类操作incr,decr会转成数值进行计算。redis所有操作都是原子性的,采用单线程处理所有业务,因此无需考虑并发带来的数据影响。按数值进行操作的数据,如果原始数据不能转换成数值,或超越了redis数值上线范围(Long.MAX_VALUE),将报错
8. 命令 incr key 值加1
9. 命令 incrby key increment 值加"increment"
10. 命令 incrbyfloat key increment 值加浮点数"increment"
11. 命令 decr key 值减1
12. 命令 decrby key increment 值减"increment"
13. 命令 setex key seconds value 设置数据具有指定的生命周期
14. 命令 psetex key milliseconds value

string数据类型扩展操作的业务场景

分表操作拿到唯一的ID,通过redis的自增来解决
在这里插入图片描述

rediskey的命名惯例

在这里插入图片描述

hash数据类型

底层使用哈希表结构实现数据存储
在这里插入图片描述

hash数据类型的基本操作
  1. 命令 hset key field value
  2. 命令 hget key field
  3. 命令 hgetall key
    在这里插入图片描述
  4. 命令 hdel key field1 [field2]
  5. 命令 hmset key field1 value1 field2 value2 …
  6. 命令 hmget key field1 field2 …
  7. 命令 hlen key 获取键key中的字段数量
  8. 命令 hexists key field 判断指定字段是否存在
hash数据类型的扩展操作
  1. 命令 hkeys key 获取指定键下的field列表
  2. 命令 hvals key 获取指定键下的value列表
  3. 命令 hincrby key field increment
  4. 命令 hincrbyfloat key field increment
hash数据类型使用注意事项
  1. hash类型下的value只能存String字符串,不允许存储其他数据类型,部存在嵌套现象
  2. 每个hash可以存储2的32次方-1个键值对
  3. hash数据类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性,但是hash的初衷并不是为了存储大量对象而设计的
  4. hgetall命令可以获取全部键值对,效率较低

List数据类型

底层使用双向链表来实现,list里保存的数据都是string数据类型
在这里插入图片描述

list数据类型的基本操作

1、命令lpush key value [value] … 从左边push
2、命令rpush key value [value] … 从右边push
3、lrange key start stop 查询数据[start,stop]
例如 lrange key 0 -1 查询整个列表的数据
4、lindex key index 查询指定下标的数据
5、llen key 查询list的长度
6、lpop key 从左边弹出
7、rpop key 从右边弹出

list数据类型的扩展操作

1、blpop key [key …] timeout
2、brpop key [key …] timeout
命令解读:阻塞式弹出
list里有就弹出,没有元素时等待timeout秒,返回nil. 可以指定多个list,有就弹出,返回list 和弹出的元素
3、lrem key count value 删除指定元素
lrem list1 2 a 从列表中删除两个a 元素,从列表头部开始找

set数据类型

在这里插入图片描述

set数据类型的基本操作

1、sadd key member1 [member2] 添加数据
2、smembers key 查询数据
3、srem key member1 [member2] 删除数据
4、scard key 获取集合数据总量
5、sismember key member 判断集合是否包含指定元素
6、srandmember key [count] 随机获取指定数量的元素
7、spop key 随机获取set集合里的元素并移除该元素
8、求两个集合的交并差集
sinter key1 [key2]
sunion key1 [key2]
sdiff key1 [key2]

sorted_set数据类型

在这里插入图片描述

sorted_set数据类型的基本操作

1、zadd key score1 member1 [score2 member2] score代表顺序,添加元素
2、zrange key start stop 查询数据,数据将按score正向排序显示
3、zrange key start stop [WITHSCORES]数据将按score排序显示,但是会带上score
4、zrevrange key start stop 逆序显示
5、zrem key member1 [member2 …] 删除指定元素
6、zrangebyscore key min max 查询[min,max]范围的元素
7、zrangebyscore key min max [WITHSCORES]数据将带上score
8、zrangebyscore key min max [WITHSCORES] limit 0 3 分页操作
9、zrevrangebyscore key min max 逆序
10、zremrangebyrank key start stop 删除指定索引(排名)的元素
11、zremrangebyscore key start stop删除指定score范围的元素
12、zcard key 获取集合总量
13、zcount key min max 获取指定score范围的集合总量
14 、zrank key member 获取指定数据的索引(排名)按从小到大
15、zrevrank key member 获取指定数据的索引(排名)按从大到小
16、zscore key member 获取指定数据的score
17、zincrby key increment member 修改指定数据的score + increment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值