Redis命令
大约 3 分钟
官方命令大全网址:http://www.redis.cn/commands.html
数据类型
数据类型 | 简单描述 | 使用场景 |
---|---|---|
String | 常规的 key-value 缓存应用 | 场景:共享用户 session,计数器(INCR ),分布式锁(setnx ) |
hash | string 类型的 field 和 value 的映射表,适合用于存储对象 | 场景:爆品商品,秒杀仓库,库存量 |
list | 存储列表结构,有序(插入顺序)可重复,基于lrange 可实现简单的高性能分页 | 场景:文章的评论,简单的消息队列 |
set | 无序,不重复 | 场景:共同好友,共同喜好,二度好友(你可能认识) |
Zset | 内部使用 HashMap 和跳跃表(SkipList)来保证数据的存储和有序 | 场景:排行榜,有权重的消息队列,热搜, |
BitMap | 通过一个 bit 位来表示某个元素对应的值或者状态 | 场景:统计用户的活跃数,在线人数 |
HyperLogLog | 基于 bitmap 计数,内部编码主要分稀疏型和密集型 | 场景:记录网站 IP 注册数,每日访问的 IP 数,页面实时 UV、在线用户人数 |
Geospatial | 场景:保存地理位置,位置距离计算,根据半径计算位置 |
Redis 基本命令
数据类型 | redis 命令 | 命令说明 |
---|---|---|
通用指令 | del key | 删除指定的 key |
exists key | 指定的 key 是否存在 | |
type key | 获取 key 的类型 | |
expire key seconds | 设置有效时间,单位:秒 | |
pexpire key milliseconds | 设置有效时间,单位:毫秒 | |
expireat key timestamp | 设置时间戳,单位:秒 | |
pexpireat key milliseconds-timestamp | 设置时间戳,单位:毫秒 | |
ttl key | 返回有效时间,单位:秒,key 存在但未设置有效时间,则返回-1 | |
pttl key | 返回有效时间,单位:毫秒,key 不存在,则返回-2 | |
persist key | 将 key 从时效性切换为永久性 | |
keys * | pattern 是匹配模式,若是指定为 * 则查询所有 key | |
rename key newkey | 重命名,覆盖式 | |
renamenx key newkey | 重命名,newkey 存在则报错 | |
dbsize | 返回当前数据库的 key 数量 | |
flushdb | 清空当前数据库的 key | |
flushall | 清空所有数据库的 key | |
String | mset name lisi age 30 gender 1 | 一次性保存多个数据 |
mget name age gender | 一次性取出多个数据 | |
strlen name | 字符串长度 | |
append name abc | 字符串追加 | |
incr num | 自增一 | |
incrby num 2 | 自增指定步长 | |
incrbyfloat num 0.5 | 自增小数 | |
decr num | 自减一 | |
decrby num 2 | 自减指定步长 | |
decrbyfloat num 0.5 | 自减小数 | |
setex key seconds 1 | 设置 key 的有效期,单位是秒 | |
psetex key milliseconds 1000 | 设置 key 的有效期,单位是毫秒 | |
del name | 删除 name | |
hash | hmset user name zhangsan age 20 | 同时设置多个属性 |
hgetall user | 将属性一次性读取出来 | |
hmget user name age | 获取指定属性 | |
hdel user name | 删除属性 | |
hlen user | hash 中属性的数量 | |
hexists user name | 判断 hash 中是否存在指定的属性,存在返回 1,不存在返回 0 | |
hincrby user age 1 | 属性自增 | |
hincrbyfloat user age 0.5 | 属性自增小数 | |
hincrby user age -1 | 属性自减 | |
list | lpush nums 1 2 3 4 5 | 从左侧添加 |
rpush nums 1 2 3 4 5 | 从右侧添加 | |
lrange nums 0 4 | 读取的索引范围 | |
lpop key | 从左侧弹出数据 | |
rpop key | 从右侧弹出数据 | |
lrem nums 1 2 | 从数据中移除[cout]个指定数据[value] | |
lindex nums 0 | 获取指定索引上的数据 | |
llen nums | 获取 list 的长度 | |
blpop nums 2 3 30 | 规定时间内获取并移除数据、blpop key1 [key2] timeout | |
set | sadd nums 1 2 3 | 添加数据 |
smembers nums | 获取到 set 中的所有数据 | |
srem nums 1 2 | 删除数据 | |
sismember nums 1 | 判断 set 中是否包含指定的数据 | |
sorted_set | zadd scores 95 chinese 98 math 85 english | 保存数据 |
zrange scores 0 -1 | 获取全部数据 | |
zrange scores 0 -1 withscores | 排序的方式获取数据 | |
zrevrange scores 0 -1 withscores | 逆序的方式获取数据 | |
zrem scores chinese math | 删除数据 | |
zrangebyscore scores 0 95 | 其中 scores 是 key, 0 95 是查找范围 | |
zrangebyscore scores 0 100 limit 0 2 | 查询分数在 100 以下的前两个数据 |