Redis基本语法集合(示例+语法格式)

目录


Key键的基本语法

命令 描述 语法格式 示例 注意事项
keys 查看当前库中所有的key,支持通配符 keys pattern keys * 生产环境已禁止,因为可能长时间阻塞Redis;推荐使用scan
exists 判断某个key是否存在 exists key [key ...] exists k1 返回存在的key数量,不具体指出哪一个存在
type 查看当前key所储存的值的类型 type key type k1 返回key的类型,如string、list等
del 删除已存在的key del key [key ...] del k1 返回删除成功的key数量
expire 给key设置过期时间(秒) expire key time expire k1 10 设置成功返回1,key不存在返回0
ttl 以秒为单位返回key的剩余过期时间 ttl key ttl k1 key不存在返回-2,没有设置过期时间返回-1
persist 移除给定key的过期时间,使其永不过期 persist key persist k1 移除成功返回1,key不存在或没有设置过期时间返回0

String的基本语法

String最多可存放512的数据

命令 描述 语法格式 示例 注意事项
set 设置给定key的值,如果key已存在则重写旧值 set key value set k1 v1 无视类型,直接覆盖旧值
get 获取指定key的值,如果key不存在则返回nil get key get k1 如果key不存在,返回nil
append 将给定的value追加到key原值末尾 append key value APPEND k1 k1 如果key不存在,则设置key为value
strlen 获取指定key所储存的字符串值的长度 strlen key strlen k1 如果key储存的不是字符串,返回错误
setex 设置key的值及过期时间(秒) setex key time value setex k1 10 v1 如果key已存在,替换旧值并设置新的过期时间
setnx 只有在key不存在时设置key的值 setnx key value setnx k4 v4 如果key已存在,不做任何操作
getrange 获取指定区间范围内的值 getrange key start end getrange k5 2 4 返回start到end范围内的子字符串
setrange 覆盖key指定偏移量上的字符 setrange key offset value setrange k6 1 xxx 从offset开始覆盖字符
incr 将key中储存的数字值增一 incr key incr k1 如果key不存在,初始化为0再递增;非数字值会报错
decr 将key中储存的数字值减一 decr key decr k1 如果key不存在,初始化为0再递减;非数字值会报错
incrby/decrby 将key存储的数字值按step增减 incrby/decrby key step incrby k1 10 如果key不存在,初始化为0再执行;非数字值会报错
mset 同时设置一个或多个key-value mset key1 value1 key2 value2 mset k1 v1 k2 v2 k3 v3 批量设置多个键值对
mget 返回所有给定key的值 mget key1 key2 mget k1 k2 k3 如果某个key不存在,返回nil
getset 将给定key值设为value,并返回key的旧值 getset key value getset k1 wcc 先获取旧值,然后设置新值

List的基本语法

命令 描述 语法格式 示例 注意事项
lpush 从列表左边(头部)插入一个或多个值 lpush key value [value ...] lpush k1 v1 v2 v3 插入成功返回列表长度
rpush 从列表右边(尾部)插入一个或多个值 rpush key value [value ...] rpush k1 v4 v5 v6 插入成功返回列表长度
lrange 返回列表中指定范围的元素 lrange key start end lrange k1 0 2lrange k1 0 -1 startend基于0索引,-1表示最后一个元素
lpop 移除并返回列表的第一个元素 lpop key lpop k1 移除成功返回被移除的元素,列表不存在或为空返回nil
rpop 移除并返回列表的最后一个元素 rpop key rpop k1 移除成功返回被移除的元素,列表不存在或为空返回nil
lindex 获取列表中指定索引位置的元素 lindex key index lindex k1 0 index基于0索引,超出范围返回nil
llen 获取列表的长度 llen key llen k1 返回列表的长度,列表不存在返回0
lrem 从列表中移除指定数量的指定元素 lrem key count value lrem k1 2 v1 count为正数从头部开始移除,为负数从尾部开始移除;移除成功返回被移除的元素数量
linsert 在列表中指定元素的前或后插入一个新元素 linsert key before/after pivot value linsert k1 before v1 v5 插入成功返回列表长度,pivot不存在返回-1
lset 将列表中指定索引位置的元素设置为新值 lset key index value lset k1 2 new_value index基于0索引,超出范围或列表不存在返回错误

Set的基本语法

String类型的无序集合

底层是value为null的hash表

命令 描述 语法格式 示例 注意事项
sadd 向集合中添加一个或多个元素,已存在的元素将被忽略 sadd key value [value ...] sadd k1 v1 v2 v2 v3 v4 v5 v6 添加成功返回新添加的元素数量(不包括已存在的)
smembers 返回集合中的所有元素 smembers key smembers k1 返回集合中的所有元素,集合不存在返回空列表
sismember 判断集合中是否包含指定元素,包含返回1,否则返回0 sismember key value sismember k1 v1 判断成功返回1或0,集合不存在返回0
scard 返回集合的元素个数 scard key scard k1 返回集合的元素个数,集合不存在返回0
srem 删除集合中的一个或多个元素,不存在的元素将被忽略 srem key value [value ...] srem k1 v1 v2 删除成功返回被删除的元素数量(不包括不存在的)
spop 随机删除集合中的一个元素并返回该元素 spop key spop k1 删除成功返回被删除的元素,集合为空或不存在返回nil
srandmember 随机返回集合中的指定数量的元素,但不删除这些元素 srandmember key count srandmember k1 2 返回指定数量的随机元素,集合元素不足时返回所有元素
smove 将元素从源集合移动到目标集合中 smove source destination value smove k1 k2 v5 移动成功返回1,元素不存在或源集合不存在返回0
sinter 返回两个或多个集合的交集元素 sinter key1 [key2 ...] sinter k1 k2 返回交集元素,至少一个集合不存在时返回空列表
sunion 返回两个或多个集合的并集元素 sunion key1 [key2 ...] sunion k1 k2 返回并集元素,至少一个集合不存在时返回所有存在的集合元素
sdiff 返回第一个集合与后面一个或多个集合的差集元素 sdiff key1 [key2 ...] sdiff k1 k2 返回差集元素,至少一个集合不存在时返回第一个集合的所有元素

Hash的基本语法

键值对的集合

key------Hash表(field1--value1,field2--value2,field3--value3...)

命令 描述 语法格式 示例 注意事项
hset 给哈希表中的字段赋值 hset key field value hset user name baizhan 如果哈希表或字段不存在,则创建;如果字段已存在,则覆盖旧值
hget 从哈希表中取出字段的值 hget key field hget user name 如果哈希表或字段不存在,则返回nil
hmset 批量设置哈希的字段及值(已废弃,建议使用hset的多个字段形式) hmset key field1 value1 field2 value2 ... hmset user1 name baizhan age 15 批量设置字段和值,如果哈希表不存在则创建
hexists 判断哈希表中是否存在指定字段 hexists key field hexists user1 name 存在返回1,不存在返回0
hkeys 获取哈希表中所有的字段 hkeys key hkeys user1 返回哈希表中所有的字段列表
hvals 获取哈希表中所有的值 hvals key hvals user1 返回哈希表中所有的值列表
hincrby 为哈希表中的字段值加上增量 hincrby key field increment hincrby user1 age 10 字段值必须为整数,增量可以为正或负
hdel 删除哈希表中的一个或多个指定字段 hdel key field1 field2 ... hdel user1 age 删除成功返回被删除的字段数量,不存在的字段被忽略
hsetnx 给哈希表中不存在的字段赋值 hsetnx key field value hsetnx user1 age 10 如果字段已存在,则操作无效并返回0;如果字段不存在,则设置值并返回1

Zset的基本语法

String集合,不允许重复,但可以排序,每条数据都关联一个分数,依据分数高低排序,其中分数可重复

命令 描述 语法格式 示例 注意事项
zadd 向有序集合中添加一个或多个元素及其分数 zadd key score1 value1 score2 value2 ... zadd k1 100 java 200 c++ 300 python 400 php 如果元素已存在,则更新其分数;分数可以是整数或浮点数
zrange 返回有序集合中指定索引范围内的元素 zrange key start end [withscores] zrange k1 0 -1zrange k1 0 -1 withscores 按分数递增排序;withscores参数可选,用于返回元素分数
zrangebyscore 返回有序集合中指定分数范围内的元素 zrangebyscore key minscore maxscore [withscores] zrangebyscore k1 200 400 按分数递增排序;withscores参数可选,用于返回元素分数
zincrby 为有序集合中元素的分数加上指定增量 zincrby key increment value zincrby k1 50 java java元素的分数加上50
zrem 从有序集合中删除指定元素 zrem key value zrem k1 php 删除php元素
zcount 统计有序集合中指定分数范围内的元素个数 zcount key minscore maxscore zcount k1 100 300 统计100分到300分之间的元素个数
zrank 返回有序集合中指定元素的排名 zrank key value zrank k1 c++ 返回c++元素在有序集合中的排名,从0开始

Bitmaps的基本语法

对字符串进行位的操作,合理使用可以提高效率

适合用于需要高效存储和查询大量布尔值(如打卡记录、活跃状态等)的场景。

命令 描述 语法格式 示例 注意事项
setbit 设置Bitmaps中某个偏移量的值 setbit key offset value setbit zhangsan:3 1 1 value只能是0或1;偏移量从0开始
getbit 获取Bitmaps中某个偏移量的值 getbit key offset getbit sign 3 如果偏移量未设置值,则返回0
bitcount 统计字符串被设置为1的bit数量 bitcount key [start end] bitcount signbitcount num 1 3 可以指定字节组范围进行统计;不指定范围则统计整个字符串
bitop 将多个bitmaps通过求交集/并集方式合并成一个新的bitmaps bitop and/or destkey sourcekey1 sourcekey2 ... bitop and k3 k1 k2bitop or k3 k1 k2 and表示交集,or表示并集;destkey是目标key,sourcekey是源key

Geospatia的基本语法

操作地理空间数据,允许存储、查询和计算地理位置的相关信息。

命令 描述 语法格式 示例 注意事项
geoadd 将一个或多个经度、纬度、位置名称添加到指定的key中 geoadd key longitude latitude member [longitude latitude member ...] geoadd china 116.405285 39.904989 beijing 经度在前,纬度在后;可以同时添加多个位置
geopos 从给定的key里返回所有指定名称的位置(经度和纬度) geopos key member [member ...] geopos china shanghai beijing 返回指定名称的经纬度;不存在的名称返回nil
geodist 返回两个给定位置之间的距离 `geodist key member1 member2 [m km ft
georadius 以给定的经纬度为中心,返回与中心的距离不超过给定最大距离的所有位置元素 `georadius key longitude latitude radius m km ft

Hyperloglog的基本语法

用于基数估算

适合用于需要估算大量集合中唯一元素数量的场景,例如统计网站的独立访客数量。

提供的基数是估计值 ,而不是精确值,但它在处理大量数据时非常高效且占用较少的内存空间。

命令 描述 语法格式 示例 注意事项
pfadd 将所有元素参数添加到HyperLogLog数据结构中 pfadd key element1 element2 ... pfadd book1 uid1 uid2 uid3 如果至少有一个元素被添加,则返回1;否则返回0
pfcount 计算HyperLogLog的近似基数,可以计算多个HyperLogLog的基数总和 pfcount key1 key2 ... pfcount book1pfcount book1 book2 基数是估计值,不是精确值;可以计算多个key的基数总和
pfmerge 将一个或多个HyperLogLog合并成一个新的HyperLogLog pfmerge destkey sourcekey1 sourcekey2 ... pfmerge book book1 book2 合并后的HyperLogLog将包含所有源HyperLogLog中的唯一元素
相关推荐
理想不理想v1 小时前
前端如何做缓存处理?
前端·缓存
凡人的AI工具箱1 小时前
每天40分玩转Django:Django缓存视图
开发语言·数据库·后端·python·缓存·django
白露与泡影2 小时前
SpringBoot如何实现缓存预热?
spring boot·spring·缓存
夕阳_醉了2 小时前
Javascript中如何实现函数缓存?函数缓存有哪些应用场景?
开发语言·javascript·缓存
编程乐趣2 小时前
一款可以替代Navicat的数据库管理工具
数据库·c#
Zmxcl-0073 小时前
sql第(18~20)关
数据库
别这么骄傲4 小时前
使用Flinkcdc 采集mysql数据
大数据·数据库·flink
loop lee4 小时前
Redis - 集合 Set 及代码实战
java·数据库·redis·mysql·算法
一位资深码农5 小时前
redis问题解决方法
数据库·redis·缓存