redis系列
简介:
Reids默认端口6379,队列要遵循先进先出的原则,是在消息的传输中保存消息的容器,消息队列管理器在将消息从它的源中继到它的目标时充当中间人,队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,知道可以成功的传递它。
Redis数据类型:
String、hash、list、zset、set
字符串string:
Redis中的key、value区分大小写,命令不区分大小写,value最大可容纳的数据长度是512M。
Set key value 往key中存入一个值value
Get key 获取键key的值
Incr key key值对应的value自增1,如果没有这个key值自动给你创建 并赋值1;
Decr key key值对应的value自减1
应用场景:
Incr、decr 计数器
Setnx、expire、del 分布式锁
set 存储对象(不常变化的部分)
散列hash:
相当于是一个key中存在多个map。Redis中的散列可以看成具有key和value的map容器,可以将多个key-value存储到一个key中,每个hash可以存储4294967295
个键值对。
Hset key field value 设置值
Hget key field 获取值
应用场景:
购物车:以用户的id为key,商品的id为field 商品的数量为value
hset、hincby 存储对象(频繁变化的部分)
无序集合set
Redis的集合是无序不可重复的(此处的无序是数据不能重复),和列表一样,在执行插入和删除以及判断是否存在某元素时,效率是很高的,集合最大的优势在于可以进行交集、并集、差集操作。Set可包含的最大元素数量是4294967295。
应用场景:
- 利用交集求共同好友;
- 利用唯一性,可以统计访问网站的所有独立IP;
- 好友推荐的时候,更具tag求交集,大于某个threshold(临界值)就可以推荐;
有序集合sortedset(zset)
有顺序的,不能重复(此处的不能重复是索引为唯一的,数据却可以重复),和set很像,都是字符串的集合,都不允许重复的成员出现出现在一个set中,它们之间的差别在于有序集合中每个成员都会有一个分数(score)与之关联,redis正是通过分数来为集合中的成员从小到大的顺序。尽管有序集合中
应用场景:
- 利用交集求共同好友;
- 利用唯一性,可以统计访问网站的所有独立IP;
- 好友推荐的时候,更具tag求交集,大于某个threshold(临界值)就可以推荐;