Redis命令大全

摘要

Redis命令大全 Redis 1. 客户端连接(shell命令) redis-cli # 本地连接,默认127.0.0.1:6379 redis-cli -h 127.0.0.1 -p 6379 # 指定ip端口连接 redis-cli ...

Redis命令大全

Redis

1. 客户端连接(shell命令)

redis-cli                              # 本地连接,默认127.0.0.1:6379
redis-cli -h 127.0.0.1 -p 6379         # 指定ip端口连接
redis-cli -h 127.0.0.1 -p 6379 -a 123456 # 带密码连接(不推荐,会留记录)
redis-cli --no-auth-warning            # 关闭密码告警
redis-cli -n 1                         # 直接选择db1

2. 基础操作(redis客户端内)

ping                                   # 测试连通,返回PONG
auth 123456                            # 密码认证
select 1                               # 切换数据库,默认db0
dbsize                                 # 当前库key数量
keys *                                 # 查询所有key(生产禁止!大库阻塞)
scan 0                                 # 迭代遍历key,安全替代keys
exists key1                            # 判断key是否存在
del key1                               # 删除key
unlink key1                            # 异步删除,大key优先用这个
expire key1 60                         # 设置过期时间60秒
ttl key1                               # 查看剩余过期时间,-1永不过期 -2已删除
persist key1                           # 取消过期
type key1                              # 查看key数据类型
rename old new                         # 重命名key

3. String 字符串(最常用)

set name "zhangsan"
setex name 60 "zhangsan"               # 设置+过期时间
setnx name "zhangsan"                  # key不存在才设置(分布式锁基础)
get name
mset k1 v1 k2 v2                       # 批量设置
mget k1 k2                             # 批量获取
incr num                               # 自增1(原子)
incrby num 10                          # 自增指定数值
decr num
decrby num 5
append name "_test"                    # 追加内容

4. Hash 哈希(适合对象存储)

hset user:1 name lisi age 22
hget user:1 name
hgetall user:1                         # 获取所有字段和值
hmget user:1 name age
hkeys user:1                           # 获取所有field
hvals user:1                           # 获取所有value
hexists user:1 age
hdel user:1 age
hincrby user:1 age 1
hlen user:1                            # field数量

5. List 列表(双向队列)

lpush list1 a b c                      # 左侧插入
rpush list1 d e                        # 右侧插入
lpop list1                             # 左侧弹出
rpop list1                             # 右侧弹出
lrange list1 0 -1                      # 查询全部元素
lindex list1 0                         # 获取指定下标元素
llen list1                             # 列表长度
lrem list1 1 a                         # 删除指定值

6. Set 集合(去重,交集差集)

sadd set1 1 2 3
smembers set1                          # 获取集合所有元素
sismember set1 2                       # 判断是否存在
scard set1                             # 元素个数
srem set1 3
sinter set1 set2                       # 交集
sunion set1 set2                       # 并集
sdiff set1 set2                        # 差集
spop set1                              # 随机弹出一个

7. ZSet 有序集合(排行榜)

zadd rank 90 tom 85 jack
zrange rank 0 -1                       # 从小到大查询
zrevrange rank 0 -1                    # 从大到小(排行榜)
zscore rank tom                        # 获取分数
zincrby rank 5 tom                     # 分数增加
zcard rank
zrem rank jack
zrangebyscore rank 80 100              # 按分数区间查询

8. 发布订阅

subscribe channel1
publish channel1 "hello"
psubscribe channel*

9. 服务器信息、持久化

info                                   # 查看redis信息(内存、持久化、连接)
info memory                            # 只看内存
info persistence                       # RDB/AOF
bgsave                                 # 后台生成RDB快照
bgrewriteaof                           # AOF重写
flushdb                                # 清空当前数据库(慎用)
flushall                               # 清空全部数据库(慎用!)
client list                            # 查看客户端连接
client kill ip:port                    # 踢掉连接

10. Shell批量命令 & Docker内操作

# shell直接执行单条redis命令
redis-cli get name
redis-cli exists key1

# docker容器操作
docker exec -it redis redis-cli
docker exec redis redis-cli set name test