Redis 常用命令

2145 字
11 分钟
Redis 常用命令
Terminal window
#使用redis-cli连接到127.0.0.1 6379这个redis服务节点,集群模式需要加-c,输入密码加-a 后面可以直接接命令
/opt/redis/redis-cli -h 127.0.0.1 -p 6379 # -c -a qweasd

1 基本#

} 默认 16 个数据库,默认使用第 0 个 } } 集群模式只能用第 0 个

命令说明
select dbNum选择数据库,如 select 0 选择第一个
dbsize查看当前数据库数据数量
flushdb清空当前数据库
flushall清空所有数据库
exists key判断 key 是否存在
move key dbNum把一个数据移动到指定的数据库,如 move key1 3,把 key1 移动到数据库 3
keys *查询当前数据库所有 key,*代表所有,也可以模糊匹配,如 keys a*,代表查询 a 开头的所有 key
expire key seconds设置一个 key 多久过期,单位秒
ttl key查询一个 key 剩余到期时间
type key查看 key 的数据类型,如 string
del key直接删除
unlink key懒删除
config get xxx获取指定配置参数
info查看服务节点信息,版本、主从、数据信息等
slaveof no one当前节点变为 master 节点
slaveof host port当前节点变为指定节点的从节点

2 字符串操作#

命令说明
setex key seconds value设置一个 string 类型的数据,并指定过期时间,如果存在该数据,则覆盖,原子操作设置成功返回 OK
setnx key value设置一个 string 类型的数据,只有 key 不存在的情况下才可成功设置,若 key 存在,不做任何操作。 成功返回 1,失败返回 0,通常用作分布式锁,但是建议 set key val nx ex…这样保证原子操作
set key value设置一个 string 类型的数据,如果存在,则覆盖,成功返回 OK 支持 NX 参数(不存在才成功),支持 EX 参数(过期秒)支持 PX 参数(过期毫秒)
get key获取一个 string 类型的数据
append key value在一个 string 类型数据末尾添加数据,成功返回追加后的字符串长度
incr key自增 1,数据格式必须是数字,返回自增后的值
decr key递减 1,数据格式必须是数字,返回递减后的值
strlen key获得数据的 length
getrange key start end获取数据并截取指定长度,索引 0 开始算, end 可用-1 代表最大
mset key1 v1 key2 v2…批处设置数据,set 的批量,成功返回 OK
mget key1 key2批量获取数据,get 的批量,成功返回相应值的列表
msetnx key1 v1 key2 v2…setnx 的批量设置,必须全部 key 不存在,才能设置成功。成功返回 1,失败返回 0
getset key先获取原值,再设置新值,如果 key 不存在则返回 null 并设置新值

3 List 操作#

本质上是一个双向链表

lpush + rpop = 先进先出队列

lpush + lpop = 压栈弹栈

命令说明
lpush key val1 val2 val3…向 key 头部添加元素 val1 val2 val3…,返回列表长度
rpush key val1 val2 val3…向 key 尾部添加元素 val1 val2 val3…,返回列表长度
lpop key查询头部元素,取出后移除该元素
rpop key查询尾部元素,取出后移除该元素
lrange key start end查询元素列表,索引 0 开始,end -1 代表最大
lindex key index按照索引查询指定的元素,0 开始
llen key查询队列的元素数量
lrem key count value移除指定的值, count } 0 代表从头部开始,移除 count 个 valuecount ${ 0 代表从尾端开始,移除 count 个 value 成功返回移除的数量
ltrim key start end截取,索引 0 开始,包括 end,而不是 end 之前。成功返回 OK
rpoplpush key1 key2将 key1 的尾端元素取出,添加到 key2 的头部,成功返回该元素
lset key index value根据索引指定元素,设置它的新数据
linsert key befrore value newVal在指定的 value 之前,插入新元素 newVal,成功返回元素总数
linsert key after value newVal至指定的 value 之后,插入新元素 newVal,成功返回元素总数

4 Set 操作#

不可添加重复值的集合

命令说明
sadd key val1 val2…向 key 添加元素 val1 val2…重复值无效,返回添加个数
smembers key查询 key 里的所有元素
sismember key val查询 key 里是否有 val,存在返回 1,否则 0
scard key查询 key 中的元素总数
srandmember key count在 key 中随机查询 count 个元素,默认 count 1
spop key随机查询一个元素,并在 key 中移除
srem key val删除 key 中指定的值 val,成功返回 1
smove key1 key2 val将 key1 中的 val,移出到 key2,成功返回 1
sdiff key1 key2以 key1 为准,查询 key1 中,key1 与 key2 的差集
sinter key1 key2查询 key1 与 key2 的交集
sunion key1 key2查询 key1 与 key2 的并集

5 Hash 操作#

即一个 key 的值为 hashMap,这个 key 的值都是 k/v 键值对的 hashmap。

命令操作
hset mapkey key val在 mapkey 的 hashmap 中设置一个 key 为 k,value 为 v 的元素,成功返回增加元素的数量
hmset mapkey k1 v1 k2 v2在 mapkey 的 hashmap 中,设置多个 k/v 元素,成功返回增加元素的数量
hget mapkey key在 mapkey 这个 hashmap 中,获取 key 的值
hmget mapkey k1 k2在 mapkey 这个 hashmap 中,获取多个 key 的值
hdel mapkey k1 k2…删除 mapkey 这个 hashmap 中的 k1 k2 和相应的 value 成功返回删除数量
hgetall mapkey获取 mapkey 这个 hashmap 中,所有的 k/v 键值对
hkeys mapkey获取 mapkey 这个 hashmap 中所有的 key
hlen mapkey获取 mapkey 这个 hashmap 中的元素数量
hincrby mapkey key incrNum在 mapkey 这个 hashmap 中,将 key 的值递增,递增数由 incrNum 决定(可以负数),成功返回自增后的值。
hsetnx mapkey key val在 mapkey 这个 hashmap 中,设置一个 key/val 键值对,如果存在则设置失败,与字符串的 setnx 同理。成功返回插入数量 1,否则 0

6 ZSet(Sorted Set)操作#

有序集合

命令说明
zadd key score1 val1 score2 val2向集合 key 添加元素,score 代表排序值,支持 NX 参数(不存在才添加元素,但不支持 EX 过期)。成功返回添加成功的元素总数
zrange key start end升序查询结果集,索引从 0 开始,参数 withscores 将把 score 加入结果集
zrevrange key start end降序查询结果集,索引从 0 开始
zrangebyscore key min max指定最小最大 score 值,升序查询,-inf 代表负无穷,+inf 代表正无穷,参数 withscores 将把 score 值加入结果集
zrevrangebyscore key max min指定最大最小 score 值,降序查询,与 zrangebyscore 同理
zrem key val…根据元素值删除元素,成功返回删除数量,否则 0
zincrby key incrNum val给 val 的 score 递增 incrNum(可为负数),成功返回递增后的值
zrank key val按照升序,查询 val 的 score 排名,val 不存在返回 null
zrevrank key val按照降序,查询 val 的 score 排名
zcard key查询元素数量
zcount key min max根据 score 最小最大值,查询指定范围内元素的数量

7 哨兵模式常用操作#

命令说明
INFOsentinel 的基本状态信息
SENTINEL masters主服务器的当前状态
SENTINEL slaves ${master-name}从节点状态情况
SENTINEL sentinels ${master-name}列出指定主 redis 的监控哨兵信息,不包括他自己
SENTINEL get-master-addr-by-name ${master-name}返回给定名字的主服务器的 IP 地址和端口号
SENTINEL flushconfig将配置强制刷新到本地文件
sentinel monitor mastername{master-name}{master-ip} ${master-prot} 2添加 master
sentinel failover ${master-name}强制故障转移

8 集群模式常用操作#

命令说明
CLUSTER INFO打印集群的信息
CLUSTER NODES查看所有节点
CLUSTER MEET ${ip} ${port}添加节点
CLUSTER FORGET ${node id}移除节点
CLUSTER REPLICATE ${node id}将当前节点设置为 node id 节点的从节点
CLUSTER SAVECONFIG配置文件保存到硬盘里面
CLUSTER ADDSLOTS ${slot}将一个或多个槽指派给当前节点
CLUSTER DELSLOTS ${slot}当前节点移除一个或多个槽
CLUSTER FLUSHSLOTS移除当前节点的所有槽
CLUSTER SETSLOT ${slot} NODE ${node id}将槽指派给 node id 节点,如果槽被占用,需要提前移出
CLUSTER SETSLOT ${slot} MIGRATING ${node id}将本节点的槽迁移到 node id 节点中
CLUSTER SETSLOT ${slot} IMPORTING ${node id}从 node id 节点导入槽到本节点
CLUSTER SETSLOT ${slot}取消对槽的导入或者迁移
CLUSTER KEYSLOT ${key}计算键 key 应该被放置在哪个槽上
CLUSTER COUNTKEYSINSLOT ${slot}返回槽 slot 目前包含的键值对数量
CLUSTER GETKEYSINSLOT ${slot} ${count}返回 count 个 slot 槽中的键

更多命令参考

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Redis 常用命令
https://ccops.cc/posts/99f6ec28/
作者
蹦蹦站长
发布于
2022-05-31
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
蹦蹦站长
一个养兔子的运维
公告
感谢你的来访!希望在这里能找到对你有用的内容!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
81
分类
6
标签
45
总字数
88,456
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.12.1
文章许可
CC BY-NC-SA 4.0

文章目录