Redis学习笔记(二) Redis的五大数据类型

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

 //查看当前库的所有值
keys * 

//判断某个键是否存在
exists<key>

//查看键的类型
type<key>

//删除某个键
del<key>

//为键值设置过期时间,单位秒
expire <key>  <seconds>

//查看还有多少秒过期  -1表示永不过期   -2表示已经过期
ttl<key>

String

 

//获取值的范围 (包前也包后)
getrange <key> <起始位置> <结束位置>


//用<value> 覆写《key》所存储的字符串值,从<起始位置>开始
setrange<key> <起始位置>  <value>

//设置键值的同时,设置过期时间,单位秒。
setex  <key>  <过期时间>   <value>


//以新换旧,设置了新值同时获得旧值。
getset <key>  <value>

List

单键多值
//从左边/右边插入一个或多个值。
lpush/rpush  <key>  <value1>  <value2>  <value3> ....

//从左边/右边吐出一个值。
//值在键在,值光键亡。

lpop/rpop  <key> 

//从<key1>列表右边吐出一个值,插到<key2>列表左边。
 rpoplpush  <key1>  <key2>  

Set

//返回两个集合的交集元素
sinter<key1><key2>
//返回两个集合的并集元素
sunion<key1><key2>
//返回两个集合的差集元素
sdiff<key1><key2>

Hash

用户ID为查找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储,主要有以下2种存储方式:

每次修改用户的某个属性需要,先反序列化改好后再序列化回去。开销较大。

 

 

用户ID数据冗余

 

通过 key(用户ID) + field(属性标签) 就可以操作对应属性数据了,既不需要重复存储数据,也不会带来序列化和并发修改控制的问题

hset<key> <field> <value>
//给<key>集合中的  <field>键赋值<value>

hget<key1> <field>
//从<key1>集合<field> 取出 value 

hmset <key1>  <field1> <value1> <field2> <value2>...   
//批量设置hash的值


hexists <key> <fieId>
//查看哈希表 key 中,给定域 field 是否存在。 


hkeys<key>
//列出该hash集合的所有fieId


hvals<key>
//列出该hash集合的所有value


hincrby <key> <fieId> <increment>
//为哈希表 key 中的域 field 的值加上增量 increment 
//若想实现减法   加上负数即可


hsetnx <key> <fieId> <value>
//将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 .
//redis不支持显示中文

zset(sorted set)

最复杂的数据类型

 

zadd  <key> <score1> <value1>  <score2> <value2>...

将一个或多个 member 元素及其 score 值加入到有序集 key 当中

zrange <key>  <start> <stop>  [WITHSCORES]  

返回有序集 key 中,下标在<start> <stop>之间的元素

带WITHSCORES,可以让分数一起和值返回到结果集。

zrangebyscore key min max [withscores] [limit offset count]

返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。

zrevrangebyscore key max min [withscores] [limit offset count]

同上,改为从大到小排列。

zincrby <key> <increment> <value>

为元素的score加上增量

zrem  <key>  <value> 

删除该集合下,指定值的元素

zcount <key>  <min>  <max>

统计该集合,分数区间内的元素个数

zrank <key>  <value>

返回该值在集合中的排名,从0开始。

 

我们在使用的时候挑选哪些数据结构作为存储,可以简单看看:

 

 

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看