redis常用命令
2020-10-07 19:37:17 0 举报
redis常用命令
作者其他创作
大纲/内容
skip list
setbit 设置二进制数值,字节流存储,最小是一个字节8bitbitcount:根据offset start end,统计1出现的countbitpos:返回字符串里面第一个被设置为1或者0的bit位bitop:可以进行二进制的位运算
setget getset:先取出在赋值append:追加字符串setrange:根据offset覆盖字符串getrange:根据offset start end 取值strlen:value的len
底层数据结构
使用redis启动服务命令默认的情况下是使用当前文件夹作为持久化文件存储的目录哨兵模式可以监控多套group,并且哨兵之间,是利用master的发布订阅,得到哨兵之间的地址,也可以询问master得到replica的地址推特不支持哨兵模式,predixy支持代理哨兵(多个group),支持clusterredis:config get * config set XXX xx临时更改配置API:高阶API:RedisTemplate:存储key的时候采用的是java的序列化方式,将字母的ASCCII码值直接转为二进制数据进行存储(16进制显示)StringRedisTemplate:是直接存储string的,由Spring封装了一下低阶API:RedisTemplate.getConnectFactory.getConnection();获取连接通过RedisConnection可以进行操作,操作的命令更像redis的命令,并且需要设置二进制
发布订阅的功能,是实时的,所以对于历史pub的message是无法收取到的,如果想要做一个历史聊天记录的查询,需要单独的去维护一个sortSet结构按时间进行排序可以绘制其结构图
随机事件
3天之内的
sub
被动清理:例如Get某个已经过期的key,才会触发清理
kafaka
redis的内存不足的时候,根据回收策略进行回收,可以选择回收范围是过期时间的key进行lru
交集:ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]去除多个key按照权重进行附加存储到destination中合集:ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]按照权重以及模式计算分支存储到destination中
sortSet
如何实现原子性呢,可以利用watch命令观测key,如果key发生变化,那么整个事务discard
client
redis所有数据
底层是hash的数据结构,具有hash常见操作HSET key field value :设置多个field value HSETNX key field value : key不存在再设置HSTRLEN key field:field的长度 HVALS key:展示key的所有valueHKEYS key:获取key的fields HDEL:删除key中fieldsHEXISTS key field:key中field是否存在 HGET key field:获取key中field的value HGETALL key:获取所有的field valueHINCRBY key field increment:key中field字段值增加HINCRBYFLOAT key field increment:....单精度增加
无序的,去重的
事务不带回滚:1.如果linux的命令放入队列成功的话,返回queue,那么在exe的时候即shi时这个命令没有成功的话,也不会其他命令也会正常执行2.如果这个命令在放入队列中直接出现问题,那么exec的时候事务之内的指令不会去执行
redissort_set
集合操作:交集差集,合集
List
栈结构
双向列表head and tail
SADD key members :添加 Srem members :移除 Spop:弹出SInter SInterStore(交集存到一个key中)SUnion SUnionStore(合集存到一个key中)Sdiff SdiffStore(差集,记住差集是有顺序的,按照第一个key取值)
bitmap
redis事务
阻塞单播队列
String
主动清理:随机取出20个key,清理,如果其中的过期key大于25%,那么重复抽取
incr:增加1 incrby :增加x incrbyfloat:增加单精度
mysql
SRANDMEMBER key [count] :随机在set中取出count个数据count>0 && count<= len:取出不重复的count个count>len:取出不重复的len个count<0 :取出count个,有可能重复的数据
数组
Hash
history
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]:追加score member 到key中ZCOUNT key min max:最大值到最小值之间的个数ZRANGE key start stop [WITHSCORES] :start stop 索引之间的元素(分值)展示 ZREVRANGE key start stop [WITHSCORES]:反转链表后根据索引范围展示数据 ZSCORE key member:member的分值ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:分值范围之内的元素展示出来 ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:...反转....ZRANK key member:member的排名ZREM key member [member ...]:删除某个元素ZREMRANGEBYRANK key start stop :按照索引范围(排名)进行删除 ZREMRANGEBYSCORE key min max:分值范围进行删除ZINCRBY key increment member:增加memberincrementZPOPMAX key [count]:弹出最大值count个ZPOPMIN key [count]:弹出最小值count个
pub/sub
集合操作
3天之外的
队列
redis中的key
integer
multi:需要注意的点
过期时间
redis中value
多个事务看谁的exec先执行
set
按照分值进行排序
redispub/sub
right now
收藏
收藏
0 条评论
下一页