Redis基础数据结构
基础数据结构
string
key -value键值对(set, get)
计数 自增自减(incrby)
list
链表
可以用左进右出或者右进左出实现队列(rpush, lpop)
右进右出实现栈(rpush, rpop)
慢操作(lindex, ltrim, lrange)
快速链表
hash
相当于java中的HashMap
key对应一个hash结构 (hset, hget, hlen, hmset)
扩容时使用渐进rehash避免阻塞
对hash中的单个字段进行计数(hincrby)
set
相当于java中的HashSet,即一个所有value为NULL的HashMap
自动去重
sadd, smembers, sismember, spop
scard获取长度
zset
可以理解为在set基础上为每个value加一个score字段,自动按有序
zadd, zrange, zrevrange, zscore, zrangebyscore, zrem
zcard获取长度
底层使用跳表数据结构,兼顾了查询和插入删除的操作性能。
容器型数据结构的通用规则
list, set, hash, zset 都是容器型数据结构,他们同享这两条通用规则。
create if not exists
drop if no elements