Redis 命令大全 看这一篇就满足日常工作

家住魔仙堡 提交于 2021-01-07 14:43:31

redis键(key)

常用命令

命令 注释
keys * 获取所有的key
select 0(库角标) 选择第几个库
move key 0(库角标) 将当前的数据库key移动到某个数据库,目标库有,则不能移动
flush 0(库角标) 清除指定库
randomkey 获取随机key
type key key的类型
set key value 设置key和value
get key 获取key的value
mset key1 value1 key2 value2 批量设置key、value
mget key1 key2 key3 批量获取value
del key 删除key
exists key 判断是否存在key
expire key second(秒) 给key设置过期时间
pexpire key millisecond (毫秒) 给key设置过期时间
persist key 删除过期时间,持久保存key

String类型

简介

String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

存储结构类似:key:value 

常用命令 (java项目www.fhadmin.org)

命令 注释
set key value 设置值
get key 获取值
getrange key start end 获取指定范围的value
getset key value 设置新value,并返回旧value
getbit key offset 获取字符串中某个位置的字符
mget key1 key2 获取多个value
setex key second(秒) value 设置key、value,同时设置过期时间
setnx key value key不存在时设置key
setrange key offset value 用新value替换老value部分字符,从offset开始替换
strlen key 获取value长度
mset key1 value1 key2 value2 批量设置key、value
msetnx key1 value1 key2 value2 批量设置,当且仅当所有要设置的key都不存在时
psetex key milliseconds(毫秒) value 设置过期时间,单位毫秒
incr key 如果value是数字,使用这个语法使数字自增1
incrby key increment 给value增加指定的值increment
decr key 给value减去1
decrby key decrement 给value减去指定的值decrement
append key value 将value追加到key原来的value尾部

List类型

简介

它是一个字符串链表,left、right都可以插入添加;

如果键不存在,创建新的链表; 如果键已存在,新增内容; 如果值全移除,对应的键也就消失了。

链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。

key是列表的名称,value是列表。

存储结构类似:key:[value1, value2, value3, value4]

常用命令

命令 注释
blpop key timeout 在timeout时间内,获取并移除列表的第一个元素
brpop key1 timeout 在timeout时间内,获取并移除列表的最后一个元素
brpoplpush source destination timeout 在timeout时间内,从source列表中取出一个值,放到destination列表中
lindex key index 获取列表index位置的值
linsert key BEFORE AFTER value1 value2
llen key 返回列表的长度
lpop key 获取并移除列表的第一个元素
lpush key value value2 将一个或多个value插入到列表的头部
lpushx key value 当key已经存在的时候,向列表的头部插入value
lrange key start end 获取列表部分数据,从start到end范围
lrem key count value count>0,从列表的头部开始算起,移除count个value相同的数据;count<0,从列表的尾部开始算起,移除count绝对值个value相同的数据;count=0,全部移除value相同的数据
lset key index value 在列表index位置设置value
ltrim key start end 保留start到end内的数据,其余的全部删除
rpop key 获取并移除列表最后一个元素
rpoplpush source destination 移除source列表最后一个元素,并把该元素添加到destination列表的头部
RPUSH key value1 value2 将一个或多个value添加到列表的尾部
rpushx key value 为已经存在的列表添加值

Hash类型

简介

hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

存储结构类似:key:{field1:value1, field2:value2, field3:value3}

如:HMSET keyName name "redis tutorial" description "redis basic commands for caching"

常用命令

命令 注释
hdel key field1 field2 删除key中一个或多个field及value
hexists key field 查看哈希表key中,指定的field字段是否存在
hget key field 在key中查找filed字段的value值
hgetall key 获取在哈希表中指定 key 的所有字段和值
hincrby key field increment 为哈希表 key 中的指定字段的整数值加上增量increment
hincrbyfloat key field increment 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
hkeys key 获取所有哈希表中的字段
hlen key 获取哈希表中字段的数量
hmget key field1 field2 获取所有指定字段的值
hmset key field1 value1 field2 value2 同时将多个 field-value对设置到哈希表 key 中
hset key field value 将哈希表 key 中的字段 field 的值设为 value 。
hsetnx key field value 只有在字段 field 不存在时,设置哈希表字段的值。
hvals key 获取哈希表中所有值。
hscan key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的键值对。

set类型

简介

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

存储结构类似:key:("value1", "value2", "value3")

常用命令

命令 注释
sadd key value1 value2 向集合添加一个或多个成员
scard key 获取集合的成员数大小
sdiff key1 key2 key3 返回第一个集合与其他集合之间的差异。
sdiffstore destination key1 key2 返回给定所有集合的差集并存储在 destination 新key中
sinter key1 key2 返回给定所有集合的交集
sinterstore destination key1 key2 返回给定所有集合的交集并存储在 destination 新key中
sismember key value 判断key的集合中是否存在value
smembers key 返回key集合中所有的value
smove source destination value 将 value 元素从 source的key 集合移动到 destination的key 集合中
spop key 随机获取并移除key中的一个value
srandmember key count 随机返回集合中count个value
srem key value1 value2 移除集合中一个或多个value
sunion key1 key2 返回所有给定集合的并集
sunionstore destination key1 key2 所有给定集合的并集存储在 destination key集合中
SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素

Zset(sorted set)类型

简介

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

存储结构类似:key:{score1:value1, score2:value2, score3:value3, }

常用命令

命令 注释
zadd key score1 value1 score2 value2 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zcard key 获取有序集合的成员数
zcount key min max 计算在有序集合中指定区间分数的成员数
zincrby key increment value 有序集合中对指定成员的分数加上增量 increment
zinterstore destination numkeys key [key ...] 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
zlexcount key min max 在有序集合中计算指定字典区间内成员数量
zrange key start stop [WITHSCORES] 通过索引区间返回有序集合指定区间内的成员
zrangebylex key min max [LIMIT offset count] 通过字典区间返回有序集合的成员
zrangebyscore key min max [WITHSCORES] [LIMIT] 通过分数返回有序集合指定区间内的成员
zrank key value 返回有序集合中指定成员的索引
zrem key value [value ...] 移除有序集合中的一个或多个成员
zremrangebylex key min max 移除有序集合中给定的字典区间的所有成员
zremrangebyrank key start end 移除有序集合中给定的排名区间的所有成员
zremrangebyscore key min max 移除有序集合中给定的分数区间的所有成员
zrevrange key start stop [WITHSCORES] 返回有序集中指定区间内的成员,通过索引,分数从高到低
zrevrangebyscore key max min [WITHSCORES] 返回有序集中指定分数区间内的成员,分数从高到低排序
zrevrank key value 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
zscore key value 返回有序集中,成员的分数值
zunionstore destination numkeys key [key ...] 计算给定的一个或多个有序集的并集,并存储在新的 key 中
zscan key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素(包括元素成员和元素分值)

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!