Redis的8种数据类型
5种基础数据类型
- String
- Hash
- List
- Set
- SortedSet
3种特殊数据类型
- GEO
- BitMap
- HyperLog
Redis常用命令
查看通用命令
help @generic
查看符合条件的所有key
,不建议在生产环境中使用此命令
keys pattern
删除指定的key
del key
判断key
是否存在
exists key
给key
设置过期时间(秒)
EXPIRE key seconds
查看剩余有效时间(秒)
ttl key
查看命令的用法
help command
string类型
- 根据
value
的格式不同可以分为:普通字符串、整数、浮点数 value
底层都是以字节数组形式存储,不同格式值的编码不同,值的最大空间不能超过512M
string常见命令
set key
:添加或修改一个键值对get key
:根据key获取值mset key1 v1 key2 v2
:批量新增多个键值对mget key1 key2
:根据多个key
获取值incr key
:整型自增1
incrby key 2
:整型指定步长自增incrbyfloat key 2
:浮点型指定步长自增setnx key
:key
不存在时新增键值对,key
已存在则不执行setex key
:添加键值对,并指定有效期
Redis key的层级结果
添加或者修改人员信息
set 部门:职位:id userinfo
获取人员信息
get 部门:职位:id
Hash类型
值是一个无序的字典,方便修改对象某个字段的值
key | value |
---|---|
xxx:user:id | {name:“张三”,age:18} |
Hash常见命令
hset key field value
:添加或修改值hget key field
:获取值hmset
:批量新增多个值hmget
:获取多个值HGETALL key
:获取key
中所有字段和值HKEYS key
:获取key
中所有字段HVALS key
:获取key
中所有值HINCRBY key field increment
:字段自增指定步长HSETNX key field value
:添加字段和值,如果字段已存在,不做任何操作
List类型
可以看做双向链表结构
- 有序
- 元素可重复
- 插入和删除快
- 查询速度一般
List常见命令
LPUSH key element [element ...]
:向列表左侧添加多个元素到列表LPOP key [count]
:移除并返回左侧第一个元素RPUSH key element [element ...]
:向列表右侧添加多个元素到列表RPOP key
:移除并返回右侧第一个元素LRANGE key start stop
:获取范围内的元素BLPOP key [key ...] timeout
:与LPOP
类似,在没有元素的时候等待指定时间BRPOP key [key ...] timeout
:与RPOP
类似,在没有元素的时候等待指定时间
Set数据类型
- 无序
- 元素不可重复
- 查找快
- 支持交、并、补集等功能
Set常见命令
sadd key member
:添加元素srem key member
:移除元素scard key
:获取元素个数SISMEMBER key member
:判断元素是否存在SMEMBERS key
:获取所有元素BLPOP key [key ...] timeout
:与LPOP
类似,在没有元素的时候等待指定时间SINTER key key2
:求交集sdiff key key2
:求差集sunion key key2
:求并集
SortedSet数据类型
- 可排序
(常用做排行榜功能)
- 元素不可重复
- 查找快
- 支持交、并、补集等功能
Set常见命令
默认排序都是升序排序,如果需要降序排序,需添加rev
zadd key member
:添加元素zrem key member
:移除元素zscore key member
:获取元素score
值zrank key member
:获取元素排名zcard key
:获取元素个数zcount key min max
:统计分数在指定范围的元素个数zincrby key increment member
:指定元素自增指定步长zrange key min max
:获取按分数排名后,指定排名范围内的元素zrangebyscore key min max
:获取按分数排名后,指定分数范围内的元素ZINTER key key2
:求交集zdiff key key2
:求差集zunion key key2
:求并集