标题 :
2.API的理解和使用
目录 :
Redis
序号 :
2
zset的成员是唯一的,但分数(score)却可以重复。
有序集合的内部编码
1.ziplist(压缩列表):当有序集合的元素个数小于zset-max-ziplist-entries配置(默认128个)
同时每个元素的值小于zset-max-ziplist-value配置(默认64个字节)时,Redis会用ziplist来作为有序集合的内部实现,ziplist可以有效减少内存使用。
2.skiplist(跳跃表):当ziplist条件不满足时,有序集合会使用skiplist作为内部实现,因为此时zip的读写效率会下降。
zset(sorted set:有序集合)命令列表
https://www.redis.net.cn/tutorial/3512.html
单线程架构
关键点
- 单线程机制:所有命令放在一个队列中
- 为什么Redis单线程这么快?内存中执行、非IO阻塞、避免线程切换和竞态产生的消耗。
- 单线程的问题?一个命令不能执行太长时间,不然会阻塞其他命令的执行。
数据库管理
Redis使用数字来标识数据库,默认配置是16个数据库.
Redis的配置可以通过
CONFIG get *
来查看
通过该命令,我们可以看到redis的默认数据库是16个
切换数据库
# 默认使用0号数据库,当选择其他数据库时,会有[index]的前缀
127.0.0.1:6379> SELECT 1
OK
#提示符从 [1] 改变成了 [2]
127.0.0.1:6379[1]> SELECT 2
OK
#提示符从 [2] 改变成了 [16]
127.0.0.1:6379[2]> SELECT 15
OK
#16号数据库是不存在!
127.0.0.1:6379[15]> SELECT 16
(error) ERR DB index is out of range
127.0.0.1:6379[15]>