Redis常用命令
Redis键常见的命令
Redis 键命令用于管理 redis 的键。
- 查询redis中所存储的所有键
keys *
- 查询redis中以a开头的所有的键
keys a*
- 删除redis中指定的键
del key
- 判断是否存在某一个键
exists key
- 给指定的键设置过期时间 单位 秒
expire key seconds
- 给指定的键设置过期时间 单位 毫秒
pexpire key millseconds
- 查看指定键对应的剩余存活时间 单位 秒
- 返回 -1,代表键是永久有效 不会过期
- 返回 -2,代表键不存在 或已过期
- 返回 >0,代表剩余的存活时间
ttl key
- 查看指定键对应的剩余存活时间 单位 毫秒
pttl key
- 移除key上的过期时间,变为永久存活
persist key
- 查看key对应值的类型
type key
- 从redis中,随机获取一个key
randomkey
- 修改键名为newKey
rename key newKey
String(字符串)常见的命令
- 存储key值为value
set key value
- 存储key的值为value,且设置过期时间为second秒
set key value ex [second]
setex key second value
- 存储key的值为value,且设置过期时间为millsecond毫秒
set key value px [millsecond]
psetex key millsecond value
- 键如果不存在,则添加到数据库,否则不做任何处理
set key value nx
- 当键存在的时候,修改key对应的值为value,键不存在,则不做任何处理
set key value xx
- 获取key对应的值
get key
- 修改key的值为value,并返回原来key对应的value值
getset key value
- 获取key对应的value值的长度
strlen key
- 将key对应的value值进行修改,自动+1(要求值必须是一个数字格式的字符串)
incr key
- 将key对应的value进行修改,每次自动加increment
incrby key [increment]
- 将key对应的value值进行修改,自动 -1
decr key
- 将key对应的value进行修改,每次自动减increment
decrby key[decrement]
hash(哈希)常见的命令
Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
存储的键对应的值是一个字典(map)
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
- 将field和value键值对的数据作为值,key为键存储到redis中
hset key field value
- 获取key对应字典中的field键的值
hget key field
- 获取key对应的字典(map)
hgetall key
- 获取key对应字典中的所有的键
hkeys key
- 获取key对应字典中的所有的值
hvals key
- 删除指定的键 键可以同时删除多个 多个用空格分隔
hdel key field
- 查看key对应的字典中,是否包含field键
hexists key field
- 获取key对应字典的长度(按键值对计算)
hlen key
- 同时将多个 field-value (域-值)对设置到哈希表 key 中
hmset key field value [field value...]
- 获取所有给定字段的值
hmget key field [field...]
- 为哈希表 key 中的指定字段的整数值加上增量 increment
hincrby key field increment
List(列表)常见的命令
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
- 将多个value添加到键为key的redis中,r(right)代表添加到尾部
rpush key value [value...]
- 将多个value添加到列表的头部
lpush key value [value...]
- 查询列表中的元素 -1代表查询到最后一个数据
lrange key start end
- 删除列表中尾部元素数据
rpop key
- 删除列表中头部元素数据
lpop key
- 修改列表中指定索引位置的值
lset key index value
- 获取列表中指定索引位置的数据
lindex key index
- 获取列表的长度
llen key
- 在pivot元素 前/后插入value元素
linsert key before/after pivot value
- 删除列表中的value,并设置删除的个数
- count > 0,从列表头部删除指定个数的value元素
- count = 0,删除列表中所有value元素
- count < 0,从列表尾部删除指定个数的value元素
lrem key count value
Set(集合)常见命令
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
集合对象的编码可以是 intset 或者 hashtable。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
- 将成员添加到指定的集合中
sadd key member [member...]
- 查看集合中所有的成员
smembers key
- 删除集合中指定的成员
srem key member
- 获取集合中的成员数量
scard key
- 判断集合中是否有某一个成员
sismember key member
- 将key1和key2进行合并(求并集)
sunion key1 key2
- 求交集(共同的部分)
sinter key1 key2
- 求差集(分主谓)
sdiff key1 key2
- 随机返回count 个集合中的成员
srandmember key count
ZSet(有序集合)常见的命令
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
- 添加成员,并设置分数(score实现有序)
zadd key score member [score member...]
- 查看指定区间的成员,按照score升序排列
zrange key start end [withscores]
- 查看指定区间的成员,按照score降序排列
zrevrange key start end [withscores]
- 查看member成员在有序集合中的 升序所在的索引位置
zrank key member
- 查看member的排名,从0开始
zrevrank key member
- 统计有序集合的成员个数
zcard key
- 查看min~max分数间的成员数量
zcount key min max
- 查看min~max分数间的成员
zrangebyscore key min max
- 查询min~max分数间的成员,按照score降序排列
zrevrangebyscore key max min
- 删除指定的成员
zrem key member
- 删除min~max之间的成员
zremrangebyscore key min max
- 根据排名删除成员
zremrangebyrank key start stop
- 查看某个成员对应的分数
zscore key member
- 给某一个集合中的成员的成绩进行自动increment
zincrby key <increment> member
服务器相关命令
- 负责将内存中的数据 写入到磁盘(同步)
save
- 负责将内存中的数据写入到磁盘 以异步的形式写入数据
bgsave
- 清空当前数据库所有存储的数据
flushdb
- 清空redis所有数据库下的所有数据
flushall
- 获取redis服务器的一些信息
info
- 查看连接redis数据库的客户端信息
client list
- 将当前redis服务器连接到指定的远程redis作为slave主机(已过时)
slaveof host port
- 高版本替代slaveof host port
replicaof host port
参考文档
https://www.runoob.com/redis/redis-intro.html