深入浅出Redis-redis底层数据结构上 包含了SDS,链表,字典
reids中的字典数据结构 这个讲的比较好
深入浅出Redis-redis底层数据结构(下)包含了跳跃表skiplist,整数集合Intset,压缩列表ziplist
redis:五种数据结构的实现方式
1.String 类型的值(SDS)
set name zhongxin; get name;
使用sds底层进行实现的。
2. hash类型(压缩列表,或者字典)
Redis hash 是一个键值(key=>value)对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
3.List(列表)双向链表或者压缩列表实现
例 redis 127.0.0.1:6379> lpush runoob redis (integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb (integer) 2
redis 127.0.0.1:6379> lpush runoob rabitmq (integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379> 列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
4.sort 整数集合Intset
sadd key member 实例
redis 127.0.0.1:6379> sadd runoob redis (integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb (integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq (integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq (integer) 0
redis 127.0.0.1:6379> smembers runoob
1) "redis"
2) "rabitmq"
3) "mongodb"
5 zset(sorted set:跳跃表)
zadd key score member 实例
redis 127.0.0.1:6379> zadd runoob 0
redis (integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb (integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq (integer) 1
127.0.0.1:6379> zadd runoob 0 rabitmq (integer) 0
redis 127.0.0.1:6379> > ZRANGEBYSCORE runoob 0 1000 1)
"mongodb" 2) "rabitmq" 3) "redis"