Hash类型
Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。
String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便
| KEY | VALUE |
|---|
| user:1 | {name:“jack”,age:23} |
| user:2 | {name:“tom”,age:21} |
Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CURD
| KEY | VALUES | |
|---|
| - | field | value |
| user:1 | name | jack |
| age | 21 |
| user:2 | name | tom |
| age | 23 |
Hash类型的常见命令
Hash的常见命令有:
HSET key field value:添加或者修改hash类型key的field的值
HGET key field“获取一个hash类型key的field的值
HMSET:批量添加多个hash类型key的field的值
HMGET:批量获取多个hash类型key的field的值
HGETALL:获取一个hash类型的key中所有的field和value
HKEYS:获取一个hash类型的key中的所有field
HVALS:获取一个hash类型的key中的所有value
HINCRBY:让一个hash类型可以的字段值自增并指定步长
HSETNX:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行
List类型
Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索也可以支持反向检索。
特征也与LinkedList类似:
List常见命令有:
LPUSH key element...:向列表左侧插入一个或多个元素
LOP key:移除并返回列表左侧的第一个元素没没有则返回null
RPUSH key element...:向列表右侧插入一个或多个元素
RPOP key:移除并返回列表右侧的第一个元素
LRANGE key start end:返回一段角标范围内的所有元素
BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil