redis命令
string
- set key value:设置键值对
- get key:取数据
- del key:删除数据
- exists key:键是否存在,0不存在,1存在
- keys *:查看所有键,keys *mm查看所有以mm结尾的键
- flushall:删除所有键
- ttl key:查看键还有多久过期
- expire key 时间:设置键的过期时间(秒)
- setex key 时间 value:设置一个有过期时间的键值对
10.setnx key value:不存在时设置,存在时无操作
list
- lpush(rpush) listname value:向list头(尾)加入值
- lrange listname 0 -1:获取第一到最后一个元素
- lpop(rpop) listname (数量):删除头(尾)元素(几个)
- llen listname:查看长度
- ltrim listname from to:删除索引外的元素
set
- sadd setname value:加入元素到set
- smembers setname:查看有哪些元素
- sismember value setname:元素是否在set中
- srem setname value:删除元素
- sinter、sunion、sdiff
sortedset
- zadd setname 数 value:新增元素
- zrange setname from to (withscores):查看
- zscore setname value:查看value的浮点数
- zrank setname value:查看value排名(升序)
- zrevrank setname value:查看value排名(降序)
- zrem
hash
- hset hashname key value:增加
- hget hashname key:读取
- hgetall hashname:读取所有
- hdel hashname key:删除
- hexists hashname key:是否存在
- hkeys setname:所有键
- hlens setname:数量
stream
- xadd streamname * 消息:*表示自动生成消息id
- xadd streamname 1-1 消息:1-1是时间戳-序列号
- xlen streamname :stream长度
- xrange streamname - +:查看所有消息
- xdel streamname 消息id:删除消息
- xtrim streamname maxlen 0:删除所有消息
- xread count 2 block 1000 streams streamname 0:从头(0)读2条数据,如果没有阻塞1000ms。0改成$,表示读取从现在开始以后的最新消息。
- xgroup create streamname 消费者组名 id:创建消费者组
- xinfo groups streamname:查看消费者组信息
- xgroup createconsumer streamname 消费者组名 消费者名:添加消费者到消费者组
- xreadgroup group 消费者组名 消费者名 count 2 block 1000 streams streamname >:读取最新消息
geospatial
hyperloglog
bitmap
bitfield
基础知识
- key区分大小写
- 默认使用string存储数据,二进制安全,不支持中文
- redis-cli --raw进入可支持中文
- 分布订阅模式:publish 频道 消息,subscribe 频道。无法持久化,无法记录历史。
- bitmap:位图。下标是偏移量,值只有0和1
- bitfield:位域。很多小整数存储在一起(位图)。
- 事务:redis的事务不能保证所有命令执行成功。multi开启事务,exec提交事务
- 持久化:
- rdb:将内存数据写入磁盘,适合做备份
- aof:写命令会在aof文件中记录,日志形式。redis重启会重新执行aof中的命令,重建redis内容。
- 主从复制:主节点数据复制到从节点,主节点负责写,从节点负责读操作。
- 哨兵模式:哨兵是redis集群中的一个独立进程,监控。
- 不断发送命令,检查节点是否正常。
- 发现不正常节点,会通过发布订阅模式通知其它节点。
- 自动故障转移,主节点不可用时,将一个从节点转换为主节点。
数据结构
- 5种基本数据类型:string、list、set、sortedset、hash
- 5种高级数据类型:stream、geospatial、hyperloglog、bitmap、bitfield
- list有序,元素可重复
- set无序,元素不能重复
- sortedset(zset)元素关联一个浮点数,元素不能重复,按浮点数从小到大排序
- geospatial地理位置信息
- hyperloglog基数统计,精度有误差