string
重点!!:
bitmap: 默认一个字节的大小,根据命令来进行扩容
bitcount:计算bitmap里面为1的个数
bitop:将两个key进行或运算得出结果给新的key赋值
bitpos:在数组里面找到范围内的第一个为0或者1的位置,返回位置
getbit:得到指定位置的数值,是0还是1
setbit:给指定位置赋值
setnx:在高并发下使用的命令,只有成功设置值返回1,失败返回0(可以并发的去更新,然后只让一个请求去做更新成功之后的操作)
psetex setex:设置带过期时间的key,p代表毫秒为单位,不加p代表秒为单位
List
重点!!
rpush 和 rpushx的区别?
多了一个x,代表exist,是否存在,rpushx向一个已经存在的list进行添加,如果不存在返回0
lrem:删除count个value的值
Set
重点!!
大部分都是集合的寻常操作
sdiffstore:多个集合的差集保存在新的key中
sinterstore:多个集合的交集保存在新的key中
sunionstore:多个集合的并集保存在新的key中
Sored_set
重点!!
与set差不多,区别在于底层主要是跳表实现,保证有序,所有有一些特别的指令,比如zincrby等
Hash
重点!!
底层主要数据结构hash实现,hvals 根据特殊的匹配模式搜出符合条件的key
PubSub发布订阅
重点!!
类似消息队列的功能
pubsub:查看订阅的状态,可以加参数来查看不同的
channels:查看当前活动的频道有哪些
numsub [channel]:查看订阅给定的客户端的个数
numpat :查看当前服务器被订阅模式的数量
subscribe:订阅频道
psubscribe:订阅模式
publish:给频道发送消息
Tracations 事务
重点!!
multi:事务开头 exec:事务提交,会看是否有REDIS_DIRTY_CAS标志,如果有的话代表安全性被破坏,会拒绝执行事务
watch:监视key是否被修改, 别的key执行set等修改命令会调用一个查看被监视的key是否被修改的函数,如果被修改会打开客户端的REDIS_DIRTY_CAS标志代表安全性已经被破坏
discard:取消事务
Connection 链接
重点!!
auth:检测密码是否和配置文件中的密码一样
echo:打印字符串
ping:用来测试连接是否正常,如果正常服务器会返回pong
Server 服务器
重点!!
client list:查看客户端列表,能够看到客户端连接的地址端口
client kill:关闭一个连接,然后redis会重新建立一个连接,一般用于连接出故障的情况,手动进行迁移
bgrewriteaof:aof重写,重写主要是对当前数据库状态来弄命令,写在新的AOF文件,重写期间接收客户端命令,存在AOF重写缓冲区,重写成功后放入,将AOF重写缓冲区的命令也放入文件中
client pause:阻塞客户端命令一段时间,毫秒单位
config : redis.conf 配置文件相关命令
config set : 将配置项的值修改,但是不会被记录到配置文件当中,下次启动redis依然是老配置
config get: 得到配置项的值
config rewrite:将当前配置记录到redis.conf中去
config resetstat:重置info里面记录的一些信息
debug object : 查看key的一些信息
lastsave:最近一次持久化的时间,返回一个时间戳
dbsize:计算当前数据库的key的数量
monitor:实时打印服务器接收到的命令,用于调试
role :查看当前服务器是什么角色 master slave sentinel
sync ,fsync:主从复制时候使用,一个是全量复制,一个是按位移复制
Lua脚本
Hyperloglog 概率计数器
重点!!
主要用于计算基数,pfcount能够计算出基数集的长度,也就是不同的个数有多少个
Generic 通用命令
重点!!
dump:序列化一个key的值,返回序列化后的值
migrate:迁移key 从当前实例数据库到目标实例数据库 (内部实现,先dump序列化key,然后目标数据库再使用restore反序列化)
move:当前数据库移动到目标数据库
object: 查看key的信息
refcount : 查看引用key的val的对象个数,redis里面的共享内存机制,0-9999最开始都会被申请引用,所以自己如果set一个key的val数值是0-9999的话,返回值应该是2
encoding : 查看内部的实现结构
idletime :查看空转时间
persist :删除一个key的过期时间
type : 查看是哪种对象