Redis数据库一共有8个类型,其中5个是基本类型,剩下三个是特殊类型。这一期我们就介绍以下Redis数据库的5个基本类型。
String 类型
String类型的key通常为string类型,value也是string类型,但根据编码方式的不同,又可以分成三类:string、int、float(不管value是那种形式,底层都是字节数组的形式组成的,只不过编码的方式不一样)。
在String类型中,有以下几个常用命令:
1、set:添加或修改String类型的键值对
2、get:根据key获取String类型的value
3、mset:批量添加多个String类型的键值对
4、mget:批量获取多个String类型的value
5、INCR:让一个整型的key自增1
6、INCRBY:让一个整型的key增加指定步长
7、INCRBYFLOAT:让一个Float类型的key增加指定步长
8、SETEX:设置键值对的生命周期,秒为单位
9、SETNX:添加不存在的String类型的键值对,存在则不添加
Hash类型
Hash类型,value是一个无序字典,每个字段都是独立存储,可以对单个字段进行修改。
Hash的常见命令有:
1、HSET key field value: 添加或者修改hash类型key的field的值
2、HGET keyfield:获取一个hash类型key的field的值
3、HMSET:批量添加多个hash类型key的field的值
4、HMGET:批量获取多个hash类型key的field的值
6、HGETALL:获取一个hash类型的key中的所有的field和value
7、HKEYS:获取一个hash类型的key中的所有的field
8、HVALS:获取一个hash类型的key中的所有的value
9、HINCRBY:让一个hash类型key的字段值自增并指定步长
10、HSETNX:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行
List类型
List类型可以看作是一个双向链表,通过命令可以模拟栈、队列、堵塞队列。
特征:
1、有序:与元素的添加顺序有关
2、元素可以重复:List类型不会检查元素是否一致
3、插入删除快:因为只是改变了链表中结点的指向,并没有真的对数据进行操作
4、查询速度一般:想要查询就要将结点逐个遍历
List类型常常用于保存对顺序有要求的数据,比如评论区的先后顺序等
List类型的常用命令:
1、LPUSH key element:向列表左侧插入一个或多个元素
2、LPOP key:移除并返回列表左侧的第一个元素,没有则返回nil
3、RPUSH key element:向列表右侧插入一个或多个元素
4、RPOP key:移除并返回列表右侧的第一个元素,没有则返回nil
5、LRANG key star end:返回一段角标范围内的所有元素
6、BLPOP和BRPOP:与LPOP和RPOP类似,如果没有元素,会等待指定的时间
Set类型
Set类型可以看作是一个value为null的HashMap。
特征:
1、无序:每个插入的元素都会利用hash算法来解析角标
2、元素不可重复:相同的元素会相互覆盖
3、查找快:利用hash表来查找
4、支持交集、并集、差集等功能
Set类型的常用命令:
单集合:
1、SADD key member:向set中添加一个或多个元素
2、SREM key member:移除set中的指定元素
3、SCARD key:返回set中元素的个数
4、SISMEMBER key member:判断一个元素是否存在于set当中
5、SMEMBERS:获取set中所有的元素
多集合:
1、SINTER key1 key2:求key1与key2交集
2、SDIFF key1 key2:求key1与key2的差集
3、SUNION key1 key2:求key1与key2的并集
Sorted Set类型
Sorted Set类型是一个可排序的set集合,每一个元素都带有一个score属性,基于score属性对元素进行排序。底层是一个跳表(skipList)加hash表。
特征:
1、可排序:skipList实现排序
2、元素不重复:相同元素会覆盖
3、查询速度快:利用hash查询
SortedSet的常用命令有:
1、ZADD key score member: 添加一个或多个元素到sorted set,如果已经存在则更新其score值
2、ZREM key member:删除sorted set中的一个指定元素
3、ZSCORE key member:获取sorted set中的指定元素的score值
4、ZRANK key member:获取sorted set 中的指定元素的排名
5、ZCARD key:获取sorted set中的元素个数
6、ZCOUNT key min max:统计score值在给定范围内的所有元素的个数
7、ZINCRBY key increment member:让sorted set中的指定元素自增,步长为指定的 increment
8、ZRANGE key min max:按照score排序后,获取指定排名范围内的元素
9、ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素
10、ZDIFF、ZINTER、ZUNION: 求差集、交集、并集
默认的排序方式是升序,想要改为降序,只要再Z后面加上REV即可,比如:
ZREVRANGE key max min 就是倒叙排序了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。