Redis中数据结构有五种,分别是字符串、链表、集合、散列、有序集合,接下来我简单介绍这五种数据结构以及相应的操作命令。
String
在Redis中,字符串可以存储三种类型:
- 字节串
- 整数
- 浮点数
常用操作命令:
- set:设置键-值
- get:获得键对应的值
- del:删除给定键的值
自增自减命令:
- incr:加一
- incrby:加上某一整数
- decr:减一
- decrby:减去某一个数
- incrbyfloat:加上某一个浮点数。
另外一些命令简介如下:
列表
Redis支持了列表,使得他在键值存储中独树一帜。
常用命令:
- LPUSH:从左边入列
- RPUSH:从右边入列
- LPOP:从左边出列
- RPOP:从右边出列
- LRANG:给定位置范围的值
- LINDEX:给定位置的值
高级命令,主要是增加了对命令执行的阻塞:这些命令使得Redis可以实现简单的消息队列功能。
集合
集合和列表都可以存储多个字符串,不同的是集合中的键不能重复。
常用命令:
- SADD:添加键值
- SMEMEBERS:查询集合所有元素
- SISMEMEBER:查询集合是否包含元素
- SREM:移除元素
高级命令,主要支持了操作多个集合:
使用sdiff命令输出如下:
散列
Redis的散列可以存储多个键值的映射,散列存储的值既可以是字符串也可以是数字,同样可执行自增自减操作。
常用操作:
- HSET:设置映射
- HGET:获得指定键的值
- HGETALL:获得所有键值对
- HDEL:删除键值对。
更高级命令:
这些命令和字符串的命令差不多。
如果键值对的数量非常庞大,那么建议使用HKEYS先获得所有的键,然后根据键求值。
有序集合
和散列一样,都用于存储键值对;但是在这里键称为成员,值称为分值。
常用命令(不做解释了比较简单):
- ZADD:
- ZRANGE:
- ZRANGEBYSCORE:分值在某一个范围。
- ZREM:
有序集合的高级命令比较多,因此功能也比较齐全:
ZINTERSTORE命令
解释一下有序集合的交集运算:默认使用sum聚合函数,将两个集合中键相同的数值相加。
ZUNIONSTORE命令
有序集合的并集运算:默认使用聚合函数min,将两个集合中的数做并集处理,并且取对应键的最小值。