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
相关推荐
xxjj998a7 分钟前
Laravel6.x核心特性全解析
数据库·mysql·adb
Irene19912 小时前
Oracle:为什么 ORDER BY 能让 SUM() 变成累计?
oracle
m0_748554817 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
早日退休!!!8 小时前
《数据结构选型指南》笔记
数据结构·数据库·oracle
xcLeigh9 小时前
KES数据库性能优化实战
数据库·sql·性能优化·sql优化·数据性能
阿正呀9 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
yoyo_zzm9 小时前
Laravel9.x新特性全解析
数据库·mysql·nginx
2501_901200539 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
m0_4954964110 小时前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python
forEverPlume11 小时前
PHP怎么使用Eloquent Attribute Composition属性组合_Laravel通过组合构建复杂属性【方法】
jvm·数据库·python