Redis数据库 五个基本类型
Redis数据库一共有8个类型,其中5个是基本类型,剩下三个是特殊类型。这一期我们就介绍以下Redis数据库的5个基本类型。
String 类型
String类型的key通常为string类型,value也是string类型,但根据编码方式的不同,又可以分成三类:string、int、float(不管value是那种形式,底层都是字节数组的形式组成的,只不过编码的方式不一样)。
在String类型中,有以下几个常用命令:1、set:添加或修改String类型的键值对2、get:根据key获取String类型的value3、mset:批量添加多个String类型的键值对4、mget:批量获取多个String类型的value5、INCR:让一个整型的key自增16、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和value7、HKEYS:获取一个hash类型的key中的所有的field8、HVALS:获取一个hash类型的key中的所有的value9、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:移除并返回列表左侧的第一个元素,没有则返回nil3、RPUSH key element:向列表右侧插入一个或多个元素4、RPOP key:移除并返回列表右侧的第一个元素,没有则返回nil5、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中的指定元素自增,步长为指定的 increment8、ZRANGE key min max:按照score排序后,获取指定排名范围内的元素9、ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素10、ZDIFF、ZINTER、ZUNION: 求差集、交集、并集
默认的排序方式是升序,想要改为降序,只要再Z后面加上REV即可,比如:ZREVRANGE key max min 就是倒叙排序了。
转载自:https://segmentfault.com/a/1190000043529016