Redis - 常用命令
redis-cli
命令进入客户端- Try Redis —— Redis 官方模拟客户端 (opens new window)
# 字符串(String)
二进制安全的,可以包括任何数据。最多 512M,类似于 ArrayList,每次扩容 1M
# 设置(set)
set k1 value
# set name NipGeihou -> ok
# 查询(get)
get k1
# get Name -> NipGeihou
# 追加(append)
append k1 value2
# append name 666 -> 12(追加后的长度)
# 长度(strlen)
strlen k1
# strlen name -> 12
# key 不存在时新增(setnx)
setnx k1 value
# setnx name Zhangsan -> 0
# setnx name2 Zhangsan -> 1
# 自增 + 1(incr)
k1 必须是数值,如 k1 没有被定义,则首次执行后返回 1
incr k1
# incr orderCount -> 1
# 自减 - 1(decr)
k1 必须是数值,如 k1 没有被定义,则首次执行后返回 - 1
decr k1
# decr orderCount -> 0
# 自增自定义步长(incrby)
将 key 中存储的数字值根据自定义步长自增
incrby <步长>
# incrby orderCount 5 -> 5
# 自减自定义步长(decrby)
将 key 中存储的数字值根据自定义步长自减
decrby <步长>
# decrby orderCount 5 -> 0
# 批量设置(mset)
mset k1 v1 k2 v2 ...
# mset name NipGeihou phone 13123456789 -> ok
# 批量查询(mget)
mget k1 k2
# mget name phone
# ->
# NipGeihou
# 13123456789
# 批量 key 都不存在时新增(msetnx)
所有 key 都不存在才成功
msetnx k1 v1 k2 v2 ...
# msetnx name Zhangsan phone 010123456 -> 0
# msetnx name3 Zhangsan phone3 010123456 -> 1
# 查询截取(getrange)
getrange k1 <起始位置> <截止位置>
# getrange name 3 9 -> Geihou
# 覆盖更新(setrange)
setrange k1 <起始位置> 覆盖内容
# setrange name 3 Siusiu -> 9
# get name -> NipSiusiu
# 设置并设置过期时间(setex)
指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
setex <key> <secondTimeOut> <value>
# setex name 60 NipGeihou -> OK
# ttl name -> 60
# 60秒后
# get name -> null
# 查询并设置过期时间(getex)
getex <key> [ex <secondTimeOut>]
# getex name -> NipGeihou
# ttl name -> -1
# getex name ex 60 -> NipGeihou
# ttl name -> 60
# 60秒后
# get name -> null
# 设置并查询旧值(getset)
getset <key> <value>
# getset name NipGeihou -> null
# getset name NipSiusiu -> NipGeihou
# 列表(List)
元素较少时使用一块压缩列表
# 左边插入多个值(lpush)
依次放左边
lpush k1 v1 v2 v3 ...
# lpush name NipGeihou NipSiusiu Zhangsan
# lrange name 0 -1
# ->
# Zhangsan
# NipSiusiu
# NipGeihou
# 右边插入多个值(rpush)
rpush k1 v1 v2 v3
# 左边取值(lpop)
取出一个值,不是查。取完 k1 消失
lpop k1
# lpop name -> Zhangsan
# lrange name 0 -1
# ->
# NipSiusiu
# NipGeihou
# 右边取值(rpop)
rpop k1 [count]
# 右边取值插入另一个列表左边(rpoplpush)
rpoplpush k1 k2
# rpoplpush name nameList -> NipGeihou
# 按索引从左到右查询(lrange)
0 左边第一个,-1 右边第一个
lrange <key> <startIndex> <endIndex>
# lrange name 0 -1
# ->
# NipSiusiu
# NipGeihou
# 长度(llen)
llen <key>
# llen name -> 2
# 在某个值前 / 后插入(linsert)
如果列表中有多个相同的 value 时,会在最右那个 value 操作
linsert <key> after|before <value1> <value2>
# linsert name after NipGeihou Zhangsan -> 3
# 从左删除若干个 value 值(lrem)
lrem <key> <count> <value>
# lrem name 2 NipGeihou -> 2
# 从左更新某索引的值(lset)
lset <key> <index> <value>
# lset name 0 NipGeihou -> OK
# 集合(Set)
元素不可重复
# 批量新增(sadd)
sadd <key> <value1> <value2> ...
# sadd nameSet NipGeihou Nipsiusiu -> 2
# 查询(smembers)
smembers <key>
# smembers nameSet
# NipGeihou
# Nipsiusiu
# 是否存在(sismember)
sismember <key> <value>
# sismember nameSet NipGeihou -> 1
# sismember nameSet Zhangsan -> 0
# 元素个数(scard)
scard <key>
# scard nameSet -> 2
# 删除(srem)
srem <key> <value1> [<value2> ...]
# srem nameSet NipGeihou -> 1
# 随机取一值并删除(spop)
spop <key>
# 随机取出 N 个值(srandmember)
srandmember <key> <count>
# 移动(smove)
smove <oldKey> <newKey> <value>
# 取交集(sinter)
sinter k1 k2
# 取并集(sunion)
sunion k1 k2
# 取差集(sdiff)
sdiff k1 k2
# 哈希(Hash)
# 新增(hset)
hset <key> <field> <value>
# hset user username NipGeihou -> 1
# hset user password 123456 -> 1
# 查询 key 某个属性的值(hget)
hget <key> <field>
# hget user username -> NipGeihou
# 批量新增(hmset)
hmset <key> <field1> <value1> [<field2> <value2> ...]
# hmset user phone 13123456789 sex 1 -> OK
# 属性是否存在(hexists)
hexists <key> <field>
# hexists user username -> 1
# 查询 key 所有属性名(hkeys)
hkeys <key>
# hkeys user
# 查询 key 所有的值(hvals)
hvals <key>
# hvals user
# 属性值自增自定义(hincrby)
hincrby <key> <field> <number>
# hincrby user age 5 -> 23
# 属性不存在时新增(hsetnx)
hsetnx <key> <field> <value>
# hsetnx user username NipGeihou -> 0
# 有序集合(Zset、Sorted Set)
类似 set,有序的没有重复元素的字符串集合
# 新增(zadd)
zadd <key> <value1> <value2> ...
推荐阅读
# 位图(Bitmap)
推荐阅读
# 基数统计(HyperLogLog)
推荐阅读
# 库操作
# 切换库(select)
默认 16 个库,默认使用 0 号库
select 库号
# select 0
# Key 操作
# 查看当前库所有 key(keys)
keys *
# 是否存在(exists)
exists <key>
# 查看类型(type)
type <key>
# type user -> hash
# 阻塞删除(del)
del <key>
# 非阻塞删除
unlink <key>
# 设置过期时间(expire)
expire <key> <second>
# 查询过期时间(ttl)
查看过期秒,-1 永不过期,-2 已过期
ttl <key>
# 当前库 key 数量(dbsize)
dbsize
# 清空当前库(flushdb)
flushdb
# 清空全部库(flushall)
flushall
上次更新: 2023/07/25, 11:50:02