目录
Key键的基本语法 String的基本语法 List的基本语法 Set的基本语法 Hash的基本语法 Zset的基本语法 Bitmaps的基本语法 Geospatia的基本语法 Hyperloglog的基本语法
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 2
或 lrange k1 0 -1
start
和end
基于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 -1
或 zrange 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 sign
或 bitcount num 1 3
可以指定字节组范围进行统计;不指定范围则统计整个字符串 bitop 将多个bitmaps通过求交集/并集方式合并成一个新的bitmaps bitop and/or destkey sourcekey1 sourcekey2 ...
bitop and k3 k1 k2
或 bitop 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 book1
或 pfcount book1 book2
基数是估计值,不是精确值;可以计算多个key的基数总和 pfmerge 将一个或多个HyperLogLog合并成一个新的HyperLogLog pfmerge destkey sourcekey1 sourcekey2 ...
pfmerge book book1 book2
合并后的HyperLogLog将包含所有源HyperLogLog中的唯一元素