Redis服务常用命令

一、基本命令

复制代码
1.启动redis服务
在redis的src目录下执行命令:
./redis-server

2.启动redis客户端实例
在redis的src目录下执行命令:
./redis-cli

3.连接远程redis服务器:
redis-cli -h host -p port -a password

4.设置key-value
set key value

5.获取值
get key

6.删除
del key

7.判断key是否存在
exists key

8.设置10秒过期
expire key 10

9.设置10毫秒过期
pexpire key 10

10.删除过期时间
persist key

11.切换数据库
redis有16个数据库(DB 0~DB 15),默认使用0号数据库
select index(index表示数据库编号)

12.清空当前选中的数据库
flushdb

13.清空所有数据库
flushall

14.查看当前数据库的所有key
keys *
keys *address*

15.查看字段类型
type key

16.检测连接是否存活
ping 

17.在命令行打印一些内容
echo

18.退出客户端
quit、exit

19. 退出服务器端
shutdown

20.返回redis相关信息
info

21. 实时传递接收的请求
config get dir/*

22.显示慢查询
showlog

23. 查看当前数据库大小
dbsize

24.不同数据库之间数据是不能互通的,move移动键到指定数据库
move key n

25. 杀掉所有redis服务
killall redis-server
killall redis-sentinel

26.修改key名称
RENAME oldkey newkey

二、String

复制代码
set name ljh    --设置值
get name    --获取值
getrange name 0 -1        --截取字符串,0对应start,1对应end
setrange key index value  --从index开始替换value
getset name new_ljh       --设置值,返回旧值
mset key1 value1 key2 value2   --批量设置
mget key1 key2            --批量获取
setnx key value           --不存在就插入(not exists)
setex key time value      --过期时间(expire)
incr age        --执行+1
incrby age 10   --执行+10
decr age        --执行-1
decrby age 10   --执行-10
incrbyfloat     --增减浮点数
append          --追加
strlen          --长度

三、hash

复制代码
hset myhash name ljh      --添加一个键值对
hget myhash name          --取出值
hmset myhash name ljh age 20 note "i am notes"      --批量键值对
hmget myhash name age note   
hgetall myhash               --获取所有的键值对
hexists myhash name          --是否存在
hsetnx myhash score 100      --不存在的话创建,存在的话修改
hincrby myhash id 2          --增加2
hdel myhash name             --删除
hkeys myhash                 --只取key
hvals myhash                 --只取value
hlen myhash                  --长度

四、list

复制代码
lpush mylist a b c  --左插入
rpush mylist x y z  --右插入
lrange mylist 0 -1  --数据集合
lpop mylist  --弹出元素
rpop mylist  --弹出元素
llen mylist  --长度
lrem mylist count value  --根据值来删除(count表示要删除多少个值为value的元素)
lindex mylist 2          --指定索引的值
lset mylist 2 n          --索引设值
ltrim mylist 1 2         --截取指定的元素集合
linsert mylist before 1 value   --在值为1前面插入value值
linsert mylist after 1 value    --在值为1的后面插入value值
rpoplpush list list2     --将list的最后一个元素移到list2中

五、set

复制代码
sadd myset e          --添加一个元素
smembers myset        --数据集合
srem myset e          --删除
sismember myset e --判断元素是否在集合中
scard key_name       --set集合中元素个数
sdiff | sinter | sunion --操作:集合间运算:差集 | 交集 | 并集
srandmember          --随机获取集合中的元素
spop                 --从集合中弹出一个元素

六、zset

复制代码
zadd zset 1 one          --添加一个元素(1表示score,用作排序使用)
zadd zset 2 two            
zadd zset 3 three
zincrby zset 1 one              --分数+1
zscore zset two                 --获取分数
zrange zset 0 -1                --获取全部的值
zrange zset 0 -1 withscores     --获取全部值并附带分数
zrangebyscore zset 10 25 withscores --分数在某个范围的值
zrangebyscore zset 10 25 withscores limit 1 2 --分页
Zrevrangebyscore zset 10 25 withscores --指定范围的值从大到小排序
zcard zset  --元素数量
Zcount zset --获得指定分数范围内的元素个数
Zrem zset one two        --删除一个或多个元素
Zremrangebyrank zset 0 1  --按照排名范围删除元素
Zremrangebyscore zset 0 1 --按照分数范围删除元素

七、hyperLogLog

复制代码
pfadd mykey a b c d --向一个集合添加元素
pfmerge mykey3 mykey mykey2 --向合并mykey和mykey2中的元素到集合mykey3中,并且没有重复元素
pfcount mykey3 --查看mykey的基数(即重复元素只算一次)

八、bitmap

复制代码
setbit mybitmap 0 0    --设置第0位的值为0
getbit mybitmap 0    --获得第0位的值
bitcount mybitmap    --统计值为1的数量

九、 订阅与发布

复制代码
订阅频道:subscribe chat1
发布消息:publish chat1 "hell0 ni hao"
查看频道:pubsub channels
查看某个频道的订阅者数量: pubsub numsub chat1
退订指定频道: unsubscrible chat1   , punsubscribe java.*
订阅一组频道: psubscribe java.*

十、分析key的方法

复制代码
1.寻找bigKey,粗略的看下最大key
redis-cli自带的一个命令。对整个redis进行扫描,寻找较大的key,Key主要以string类型存在
redis-cli -h b.redis -p 1959 --bigkeys

2. redis的命令,可以查看某个key序列化后的长度
debug object key

3.redis rdb file的分析工具,可以根据rdb file生成内存报告

4.查看单个key
redis-memory-for-key -s b.redis -p 1959 myhash

十一、SCAN命令

复制代码
SCAN    --迭代当前选定的Redis数据库中的一组键
SSCAN    --迭代 Sets 类型的元素
HSCAN    --迭代 Hash 类型的字段及其相关值
ZSCAN    --迭代 Sorted Set 类型的元素及其相关分数
语法:SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]

scan 0
scan 0 match "user*" count 2 type string
sscan myset 0 match j*
hscan ranext:msgext 0

十二、Sentinel集群

复制代码
1.sentinel启动
./bin/redis-sentinel 16380.conf
./bin/redis-sentinel sen_16380.conf 

2.info命令
info Replication   #查看主从相关信息
INFO clients    #查看连接数

3.停止redis端口
redis-cli shutdown
redis-cli -p 6379 shutdown
相关推荐
難釋懷2 小时前
Redis分片集群手动故障转移
数据库·redis·缓存
无名-CODING2 小时前
从零开始!Vue3+SpringBoot前后端分离项目Docker部署实战(上):环境搭建与数据库容器化
数据库·spring boot·docker
Bdygsl2 小时前
MySQL(2)—— CRUD
数据库·mysql
chushiyunen2 小时前
python edge-tts实现tts文本转语音、音频
数据库·python·音视频
原来是猿2 小时前
MySQL【事务中 - 事务的隔离级别】
数据库·mysql
2501_945423542 小时前
游戏与图形界面(GUI)
jvm·数据库·python
大傻^2 小时前
Spring AI Alibaba Agent开发:基于ChatClient的智能体构建模式
java·数据库·人工智能·后端·spring·springaialibaba
爬山算法2 小时前
MongoDB(50)副本集中的角色有哪些?
数据库·mongodb
大傻^2 小时前
Spring AI Alibaba 向量数据库集成:Milvus与Elasticsearch配置详解
数据库·人工智能·spring·elasticsearch·milvus·springai·springaialibaba