# 查看所有属性名
keys *
# 设置属性的过期时间,应用场景:单点登录、热点数据、过期时间
expire 属性名 时间(以秒为单位)
# 查看属性剩余时间
ttl 属性名
# 查看属性类型
type 属性名
增
# 设置值
set 属性名 属性值
# 设置值的同时设置过期时间
setex 属性名 过期时间 属性值
# 设置值,如果该值不存在创建成功,如果该值存在,创建失败(分布式锁时常用)
setnx 属性名 属性值
# 批量设置多个值
mset 属性名 属性值 属性名 属性值 属性名 属性值 ......
# 批量设置多个值,如果其中有一个属性已经存在,则所有值都设置失败
msetnx 属性名 属性值 属性名 属性值 属性名 属性值 ......
# 设置对象,值为json字符串
set 对象名 {属性名:属性值,属性名:属性值,属性名:属性值......}
set 对象名:属性名 属性值
#获取属性的值后修改属性值
getset 属性名 属性值
查
# 查询属性值
get 属性名
# 批量查询属性值
mget 属性名 属性名 ......
# 查询对象的属性值
get 对象名:属性名 对象名:属性名 ......
mget 对象名:属性名 对象名:属性名 ......
# 查询属性值的长度
strlen 属性名
删
# 从当前数据库中移除该值
move 属性名 当前数据库号
改、替换
# 替换字符串,从初始字符值开始替换字符
getrange 属性名 初始字符值 替换字符
追加
# 在字符的尾部追加字符,返回的是新字符的长度,如果该属性不存在,相当于新建一个属性
append 属性名 属性值
截取
# 截取字符串,不改变原属性值,结尾字符值为-1时,截取到最后一个字符
getrange 属性名 初始字符值 结尾字符值
判断是否存在
# 判读某个列是否存在,返回1,表明该值存在,返回0,表明该值不存在
exists 属性名
自增、自减、步长
# 加1操作
incr 属性名
# 减1操作
decr 属性名
# 设置步长
# 增加
incrby 属性名 步长
# 减少
decrby 属性名 步长
应用场景
计数器
统计数量
对象缓存存储
增
# 在列表的头部设置值
lpush 列表名 列表值
lpush 列表名 列表值1 列表值2 列表值3 ......
# 在列表的尾部设置值
rpush 列表名 列表值
rpush 列表名 列表值1 列表值2 列表值3 ......
# 把列表中的最后一个值弹出,并把该值放到新的列表中
rpoplpush 原列表 新列表
查
# 获取列表的值
lrange 列表名
# 获取指定下标的值
lindex 列表名 下标
# 查询列表长度
llen 列表名
改、替换
# 更新列表中指定下标的值,列表或者下标不存在,报错
lset 列表名 下标 值
删
# 删除列表中的第一个元素
lpop 列表名
# 删除列表中的最后一个元素
rpop 列表名
# 删除指定的值,如果有重复值,可以指定移除几个
lrem 列表名 个数 列表值
插入
# 在列表中的某一个元素之前或之后插入值
linsert 列表名 before或after 被插入的元素值 要插入的元素值
截断
# 截断列表,会改变列表中的值
ltrim 列表名 初始下标 结束下标
判断是否存在
# 判断列表是否存在
exists 列表名
应用场景
队列
栈
增
# 设置值
sadd 集合名 集合值
查
# 查看集合值
smembers 集合名
# 查询集合的长度
scard 集合名
# 随机查询集合中的某一个值
srandmember 集合名
# 随机查询集合中的某几个值
srandmember 集合名 个数
删
# 删除集合中的某个元素
srem 集合名 值
# 随机删除集合中的某一个值
spop 集合名
移动
# 移动集合1中的某个值到另外一个集合2
smove 集合1 集合2 值
判断是否存在
# 判断某个值是否存在集合中
sismembers 集合名 值
差集、交集、并集
# 集合A - 集合B
sdiff A B
# 集合A ∩ 集合B
sinter A B
# 集合A ∪ 集合B
sunion A B
应用场景
共同关注
推荐好友
增
# 设置一个值
hset 哈希表名 字段名 字段值
# 批量设置值
hmset 哈希表名 字段名1 字段值 字段名2 字段值 ......
# 新增一个值,如果已经存在该值,则新增失败
hsetnx 哈希表名 字段名 字段值
查
# 查询字段值
hget 哈希表名 字段名
# 批量查询值
hmget 哈希表名 字段名1 字段名2 ......
# 查询哈希表全部的字段名和值
hgetall 哈希表名
# 只查询哈希表中的所有字段
hkeys 哈希表名
# 只查询哈希表中的所有字段值
hvals 哈希表名
# 查询哈希表的长度
hlen 哈希表名
删
# 删除哈希表中的某一个字段
hdel 哈希表名 字段名
增量、减量
# 增加字段值
hincrby 哈希表名 字段名 增量
# 删除字段值incr
hincrby 哈希表名 字段名 减量(负值)
判断是否存在
# 判断哈希表中的某个字段是否存在
hexists 哈希表名 字段名
应用场景
本质和String很相似,Hash适合做对象的存储,String适合做字符串的存储
适合存储对象或者易变动的信息
增
# 增加一个值
zadd 集合名 序号 集合值
# 增加多个值
zadd 集合名 序号 集合值 序号 集合值 ......
查
# 查看集合中的所有元素
zrange 集合名 0 -1
# 查看集合中的元素个数
zcard 集合名
# 查询某一个区间的值的个数
zcount 集合名 最小值 最大值
删
# 移除集合中的某个元素
zrem 集合名 集合值
排序
# 升序语法:zrangebyscore 集合名 最小值 最大值 [显示key] [限制个数]
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
# 从小到大排序,只显示value
zrangebyscore 集合名 -inf +inf
# 从小到大排序,显示key和value
zrangebyscore 集合名 -inf +inf withscores
# 降序语法:zrevrange key start stop [WITHSCORES]
zrevrange 集合名 开始值 结束值 [WITHSCORES]
应用场景
排序
排行榜
带权重执行操作
原理:底层是Zset,所以可以用Zset的命令操作Geo
官方文档:https://www.redis.net.cn/order/3685.html
添加地理位置,geoadd
# 语法:geoadd key longitude latitude member
# 有效的经度从-180度到180度,有效的纬度从-85.05112878度到85.05112878度
geoadd 集合名 经度 纬度 名称 [经度 纬度 名称 ......]
查询地理位置,geopos
# 语法:geopos key member [member ...]
geopos 集合名 集合值 [集合值 ......]
查询距离,geodist
# 语法:geodist key member1 member2 [m|km|ft|mi]
geodist 集合名 元素1 元素 2 [里程单位]
附近的人,以指定位置为中心,georadius
# 语法:georadius key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
georadius 集合名 经度 维度 半径 里程单位 [经纬度位置] [距离] [距离hash表示] [count 个数] [递增|递减]
# 根据 指定位置 的距离半径查询附近的人
georadius 集合名 经度 维度 半径 里程单位
# 根据 指定位置 的距离半径查询附近的人,以及直线距离
georadius 集合名 经度 维度 半径 里程单位 WITHDIST
# 根据 指定位置 的距离半径查询附近的人,以及直线距离哈希表示
georadius 集合名 经度 维度 半径 里程单位 WITHHASH
# 根据 指定位置 的距离半径查询附近的人,以及定位
georadius 集合名 经度 维度 半径 里程单位 WITHCOORD
# 根据 指定位置 的距离半径查询附近的人,并限制人数
georadius 集合名 经度 维度 半径 里程单位 COUNT 个数
附近的人,以集合中存在的元素为中心,georadiusbymember
# 语法:georadiusbymember key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
georadiusbymember 集合名 元素 半径 里程单位 [经纬度位置] [距离] [距离hash表示] [count 个数] [递增|递减]
# 根据 集合中的元素 的距离半径查询附近的人
georadiusbymember 集合名 元素 半径 里程单位
# 根据 集合中的元素 的距离半径查询附近的人,以及直线距离
georadiusbymember 集合名 元素 半径 里程单位 WITHDIST
# 根据 集合中的元素 的距离半径查询附近的人,以及直线距离哈希表示
georadiusbymember 集合名 元素 半径 里程单位 WITHHASH
# 根据 集合中的元素 的距离半径查询附近的人,以及定位
georadiusbymember 集合名 元素 半径 里程单位 WITHCOORD
# 根据 集合中的元素 的距离半径查询附近的人,并限制人数
georadiusbymember 集合名 元素 半径 里程单位 COUNT 个数
查询距离,距离用编码显示,geohash
# 语法:geohash key member [member ...]
geohash 集合名 元素1 [元素2 ......]
应用场景
网站访问量统计
增
# 语法:pfadd key element [element ...]
pfadd 集合名 元素 [元素 ......]
统计
# 语法:pfcount key [key ...]
pfcount 集合 [集合 ......]
合并
# 语法:pfmerge destkey sourcekey [sourcekey ...]
pfmerge 目标集合 原集合 [原集合 ......]
应用场景
存储结果为是或否的数据,如:是否打卡、是否登录、是否为活跃用户......
设置值
# 语法:setbit key offset value
setbit 集合名 位标志 值
获得值
# 语法:getbit key offset
getbit 集合名 位标志
统计值
# 语法:bitcount key [start end]
bitcount 集合名 [开始 结束]