redis常用命令大全

转载自https://my.oschina.net/zhangxufeng/blog/828614

    本文记录的redis常用命令主要是在阅读《Redis设计与实现》这本书的过程中记录的,目的有二:一是供以后使用时查阅,二是分享给读者,希望共同学习。

  • object encoding msg    获取msg对应的值的实际存储结构
  • type msg    获取msg当前的外部编码表现方式
  • object idletime msg    获取msg最后一次使用时间与当前时间之间的间隔
  • object refcount msg    获取msg对应的值对象的引用当前被共享的次数
  • select 1      将redis当前使用的数据库切换为1号数据库
  • flushdb      将当前数据库所有数据都清除
  • flushall    将所有数据库中的数据都清除
  • randomkey    获取当前数据库中随机的一个对象名
  • exists msg    判断当前数据库中是否包含msg这个对象
  • rename msg message    将名称为msg的对象重命名为message,如果message的键值对已经存在,则会将其覆盖
  • renamenx msg message    如果message的键值对存在,则不会对其进行覆盖
  • keys regex    返回名称匹配正则表达式regex的对象
  • dbsize    获取当前数据库所拥有的对象数目
  • monitor    实时获取当前服务器执行的命令
  • move msg 2    将当前库中msg对应的键值对转移到索引为2的库
  • migrate 127.0.0.1 7000 msg 0 1000    将当前redis中的msg键值对迁移到ip为127.0.0.1,端口为7000的redis实例中的0号数据库,如果1000毫秒内没有转移完则中断转移,当前命令只支持一个键值对的转移
  • migrage 127.0.0.1 7000 "" 0 1000 keys msg msg1 msg2    将当前redis中的键msg、msg1、msg2数据迁移到ip为127.0.0.1,端口为7000的redis实例中的0号数据库,如果1000毫秒内没有转移完成则中断转移,当前命令支持多个键值对的转移
  • scan 0    对数据库中的键进行遍历,0表示一个游标,返回值中包括下一次需要遍历的游标和当前遍历得到的键值对,然后依次对返回的游标进行遍历即可,直到最后返回的游标变为0说明遍历完成
  • hscan fruits 0    渐进式的遍历hash表fruits中所有的键值对
  • sscan students 0    渐进式的遍历集合students中所有的键值对
  • zscan students 0    渐进式的比那里有序集合students中所有的键值对
  • conf rewrite    将当前缓存中的配置文件信息持久化到配置文件中
  • info server    查看服务器属性

  • info stats    查看服务器在最近一秒内处理的命令请求数量,该命令是通过计算上次抽样和这次抽样之间执行的命令数量除以当前时间段来得出的一个估算值

  • info memory    查看服务器当前使用的内存情况

  • info replication    查看当前服务器链接的从服务器的状态

  • client list    查看服务器当前链接的客户端数量

  • client kill 127.0.0.1:6379    杀除ip为127.0.0.1,端口为6379的客户端的链接

  • object idle time msg    查看名称为msg的对象的空转时长

  • expire msg 10    以秒为单位设置msg的过期时间,这里将其设置为10秒,注意设置的是剩余多少时间
  • pexpire msg 1000    以毫秒为单位设置msg的过期时间,注意设置的是剩余多少时间
  • setex msg 10 "value"    为字符串msg设置值value并设置过期时间为10秒
  • expireat msg 10    以秒为单位设置过期时间,注意设置的是到期的时间点,客户端使用
  • pexpireat msg 1000    以毫秒为单位设置过期时间,注意设置的是到期的时间点,客户端使用
  • ttl msg    对于设置了过期时间的msg,以秒为单位获取其剩余多少时间,返回-1表示该键没有设置过期时间,-2表示该键不存在
  • pttl msg    对于设置了过期时间的msg,以毫秒为单位获取其剩余多少时间,返回-1表示该键没有设置过期时间,-2表示该键不存在
  • persist msg    移除msg的过期时间
  • set msg "hello world"    添加一条键为msg,值为"hello world"的数据
  • get msg    获取键为msg所对应的数据
  • append msg "abc"    将abc添加到字符串后边
  • mset a 1 b 2 c 3 d 4    批量设置键为a、b、c、d,值分别为1、2、3、4
  • mget a b c d    批量获取键为a、b、c和d对应的值
  • incrbyfloat num 2.3    将num转化为浮点数,然后加上2.3并保存起来
  • incrby num 4    将num加上4并保存起来
  • decrby num 2    将num减去2并保存起来
  • strlen msg    获取字符串msg的长度
  • setrange msg 10 "test"    将字符串msg从脚标为10的字符开始长度为test的长度的部分替换为test
  • getrange msg 1 3    获取字符串msg中脚标从1开始到脚标为3(包括)的字符
  • rpush msg "a" "b" "c"    将a b c三个字符依次插入到链表msg的表尾,最后得到的顺序是a b c
  • lpush msg "a" "b" "c"    将a b c三个字符依次插入到链表msg的表头,最后得到的顺序是c b a
  • lpop msg    将链表msg表头元素弹出
  • rpop msg    将链表msg表尾元素弹出
  • lindex msg 1    获取链表msg中索引为1的元素
  • llen msg    获取链表msg的长度
  • linsert msg before/after "a" "b"    在链表msg中从左往右找到第一个a,然后在其前/后插入元素b
  • ltrim msg 0 4    将链表索引从0到4(包含)的元素之外的元素去除掉
  • lrem msg 2 "a"    将链表msg中从左开始前2个元素为a的元素删除,这里2可以为正数也可以为负数,当为负数时表示从右往左找两个值为a的元素进行删除,如果把2改为0,则表示删除所有的值为a的元素
  • lset msg 1 "f"    将链表msg中索引为1的元素值设置为f
  • lrange msg 0 -1    获取msg对应链表对应范围的元素,如为-1则获取全部
  • brpop msg [key...] timeout    从链表msg右端弹出名称为key指定的元素(key可以没有,没有则弹出右边一个元素即可),该命令是阻塞式的,如果等待timeout时间没有获取到元素则退出等待
  • blpop msg [key...] timeout    从链表msg左端弹出名称为key指定的元素(key可以没有,没有则弹出左边一个元素即可),该命令是阻塞式的,如果等待timeout时间没有获取到元素则退出等待
  • hset book author "Dany"    在hash表book中插入键为author,值为Dany的元素
  • hget book author    获取hash表book中键位author的元素
  • hexists book author    查询hash表book中是否包含键位author的元素
  • hdel book author    删除hash表book中键位author的键值对
  • hlen book    查询hash表book中的键值对数目
  • hgetall book    获取hash表book中所有的键值对
  • hincrby book count 1    将hash表book中的键为count的值自增1
  • hincrbyfloat book price 10.5    将hash表book中的键为price的值自增10.5
  • hstrlen book author    获取hash表book中键为author的值的长度
  • hkeys book    获取hash表book中的所有键
  • hvals book    获取hash表book中的所有值
  • hmget book author count    获取hash表book中键为author和count所对应的值,这里的键的数量可以根据需要延伸
  • hmset book author "Rose" count 2    将hash表book中键为author的值设置为Rose,将键count对应的值设置为2,这里键值对可以根据需要延伸
  • sadd fruits "apple" "banana"    向集合fruits中添加元素apple和banana
  • scard fruits    获取集合fruits元素个数
  • sismember fruits "apple"    查询集合fruits中是否包含元素apple
  • smembers fruits    获取集合fruits中所有的元素
  • srandmember fruits    获取集合fruits中随机的一个元素
  • spop fruits    随机弹出集合fruits中的一个元素
  • srem fruits "apple"    移除集合fruits中的元素apple
  • sinter students1 students2    求集合键students1和students2中元素的交集,这里集合可以有多个
  • sunion students1 students2    将集合键students1和students2中元素取并集,这里集合可以有多个
  • sdiff students1 students2    获取集合students1中去除集合students2中交集部分元素剩余的元素
  • zadd fruits 3 "apple" 4 "banana" 2 "tomato"    向有序集合fruits中添加三个元素tomato,apple,banana,其分值分别为2,3,4,并且按照分值从小到大的顺序排列

  • zcard fruits    获取有序集合fruits中所有元素的数量

  • zcount fruits 2 3    统计有序集合fruits中分值在2和3(闭区间)之间的元素个数

  • zrank fruits "apple"    获取有序集合fruits中元素apple的分值的排名(从低到高)

  • zrevrank fruits "apple"    按照从高到低的顺序获取有序集合fruits中元素apple的分值的排名

  • zrangebyscore fruits (2 3] (withscores) (limit offset count)    获取分数大于2,小于等于3的集合元素,这里也可以使用-inf和+inf表示负无穷和正无穷,并且后边的withscores和limit都是可选的

  • zrange fruits 0 1 (withscores)    以升序方式获取索引在给定范围内的元素

  • zrevrange fruits 0 1 (withscores)    以降序方式获取索引在给定范围内的元素

  • zrem fruits apple    删除有序集合fruits中名称为apple的元素及其分值

  • zremrangebyrank fruits 0 3    删除有序集合中排名在0和3(闭区间)之间的元素

  • zremrangebyscore fruits 2 3    删除有序集合中分值在2和3(闭区间)之间的元素

  • zscore fruits tomato    获取有序集合fruits中名称为tomato的元素的分值

  • zincrby fruits 5 "apple"    将有序集合fruits中的元素apple的值自增5

  • psync <runid> <offset>    从服务器请求与主服务器同步,runid为主服务器的id,offset是同步偏移量

  • slaveof 127.0.0.1 12345    将当前redis服务器设置为ip为127.0.0.1,端口为12345的服务器的从服务器,并进行复制操作

  • ping    测试与主服务器的链接是否正常

  • auth 123456    获取主服务器的授权,密码为123456

  • replconf listing-port 12345    向主服务器发送当前从服务器监听的端口号12345

  • replconf ack 2534    从服务器向主服务器定时发送的命令,其中2534是从服务器当前的命令偏移量;该命令作用有三:①测试主服务器与从服务器是否链接正常;②服务实现min-slaves-to-write和min-slaves-max-lag选项(min-slaves-to-write和min-slaves-max-lag参数的意义:min-slaves-to-write表示从服务器的数量至少为多少个主服务器才执行写命令;min-slaves-max-lag表示每个从服务器的lag值都小于多少时主服务器才执行写命令(这里lag可以理解为主服务器与从服务器链接的延迟,一般是在0到1秒内跳动));③通过命令偏移量查看从服务器与主服务器传输过程中是否有命令缺失,缺失了就进行同步。

  • redis-sentinel sentinel-26379.conf    按照sentinel-26379.conf配置文件的配置启动redis-sentinel

  • sentinel masters    查看当前sentinel监控的所有master节点

  • sentinel master mymaster    查看当前sentinel监控的名称为mymaster的主节点的信息

  • sentinel slaves mymaster    查看当前sentinel监控的名称为mymaster的主节点的所有从节点的信息

  • sentinel sentinels mymaster    查看当前sentinel监控的mymaster主节点的所有sentinel节点

  • cluster meet 127.0.0.1 7000    将当前节点作为主节点链接ip为127.0.0.1,端口为7000的节点组成一个集群

  • cluster nodes    显示当前节点所在集群的所有节点信息

  • cluster info    查看当前集群的信息

  • cluster keyslot msg    查看msg这个键所在的槽位

  • cluster getkeysinslot <slot> <count>    获取槽位slot中最多count个键

  • cluster setslot 16198 importing 9dfb4c4e016e627d9769e4c9bb0d4fa208e65c26    从指定id所对应的节点将槽16198迁移到当前节点

  • cluster setslot 16198 migrating 9dfb4c4e016e627d9769e4c9bb0d4fa208e65c26    将当前节点中的槽16198迁移到指定id所对应的节点

  • subscribe 127.0.0.1:6379    订阅127.0.0.1:6379广播的消息

  • psubscribe 127.0.0.2:63.*    订阅模式127.0.0.1:63.*模式匹配的频道消息

  • unsubscribe 127.0.0.1:6379    取消订阅127.0.0.1:6379广播的消息

  • punsubscribe 127.0.0.1:63.*    取消订阅127.0.0.1:63.*模式匹配的频道消息

  • publish 127.0.0.1:6379 "hello world"    向频道127.0.0.1:6379发布消息"hello world"

  • pubsub channels [pattern]    pattern参数是可选的,匹配服务器当前被订阅的频道

  • pubsub numsub <channels>...    接收任意多个频道作为输入参数,并返回这些频道的订阅者数量

  • pubsub numpat    返回服务器当前订阅模式的数量

  • multi    标识redis服务器进入事务状态,接下来执行的命令将被存入事务队列

  • exec    执行事务队列中的命令,并将redis服务器标识为非事务状态

  • discard    取消当前准备执行的事务

  • watch msg    监视msg这个键,如果在执行事务的过程中该键被修改了,那么表示该事务失败了

  • sort names alpha desc limit 0 5    对names这个集合按照字母顺序排序,并取索引从0开始的5个元素

  • sort names alpha desc limit 0 5 store sortednames    对names这个集合按照字母顺序排序,并取集合的从0开始的5个元素,并将其保存在sortednames这个键里面(已存在该键则删除,再创建)

  • sort names alpha desc limit 0 5 get *-birth    对names这个集合按照字母顺序排序,并取集合的从0开始的5个元素,将每个元素后拼接“-birth”,如duoduo-birth,然后调用get duoduo-birth获取其值,依次将每个元素打印出来

  • bitset bit 0 1    将键bit从右往左第0号位上的值设为1

  • getbit bit 0    获取键bit第0号位上的值

  • bitcount bit    获取键bit中值为1的位的个数

  • bitcount bit 2 10    获取键bit从第2(包含)个到第10(包含)个字节之间的值为1的个数

  • bitop and and-result x y    对x和y进行按位与运算,并将运算结果保存在and-result中

  • bitop or or-result x y    对x和y进行按位或运算,并将运算结果保存在or-result中

  • bitop xor xor-result x y    对x和y进行按位异或运算,并将运算结果保存在xor-result中

  • slowlog get    获取所有的慢查询日志

  • slowlog len    获取慢查询日志的条数

  • slowlog reset    清除所有的慢查询日志

  • # redis-cli script load "$(cat lua_get.lua)"    加载名称为lua_get.lua的lua脚本,并且返回生成的sha校验和
  • script exists 7413dc2440db1fea7c0a0bde841fa68eefaf149c    判断是否存在指定校验和的lua脚本
  • script flush    清除所有已经加载的lua脚本
  • script kill    杀死当前正在执行的lua脚本
原文地址:https://www.cnblogs.com/heroinss/p/10414997.html