本文共 1958 字,大约阅读时间需要 6 分钟。
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
、
数据结构简单,key-value,value不仅仅是字符串,也可以是数字
常用的命令
Get 获取指定 key 的值Set 设置指定 key 的值Incr 将 key 中储存的数字值增一Decr 将 key 中储存的数字值减一Mget 获取所有(一个或多个)给定 key 的值SetNX|set k v NX 只有键key不存在的时候才会设置key的值Set k v XX 只有键key存在的时候才会设置key的值
是一个string类型的filed和value的映射表
常用命令
Hget 获取存储在哈希表中指定字段的值Hset 将哈希表 key 中的字段 field 的值设为 valueHgetall 获取在哈希表中指定 key 的所有字段和值
使用场景:用户信息,热门商品,部分变更数据
链表结构
常用命令
Lpush 将一个或多个值插入到列表头部Rpush 在列表中添加一个或多个值Lpop 移出并获取列表的第一个元素Rpop 移除列表的最后一个元素,返回值为移除的元素Lrange 获取所有(一个或多个)给定 key 的值
使用场景:关注列表,粉丝列表
集合,不重复的集合。 (并集)
常用命令
Sadd 向集合中添加一个或多个成员Spop 移除并返回集合中的一个随机元素Smembers 返回集合中的所有成员Sunion 返回所有给定集合的并集
使用场景:共同关注好友,二度好友,共同喜好
与set的区别是不是自动有序的,sort set是自动有序的。
Zadd 向有序集合添加一个或多个成员,或者更新已存在成员的分数Zrange 通过索引区间返回有序集合中指定区间内的成员Zrem 移除有序集合中的一个或多个成员Zcard 获取有序集合的成员数
使用场景:排行榜 、按照用户投票,文章排序
3.2版本地理位置
常用命令
GEOADD 增加地理位置的坐标,可以批量添加地理位置GEODIST 获取两个地理位置的距离GEOHASH 获取某个地理位置的geohash值GEOPOS 获取指定位置的坐标,可以批量获取多个地理位置的坐标GEORADIUS根据给定地理位置坐标获取指定范围内的地理位置集合(注意:该命令的中心点由输入的经度和纬度决定)GEORADIUSBYMEMBER根据给定成员的位置获取指定范围内的位置信息集合(注意:该命令的中心点是由给定的位置元素决定)
使用场景:LBS应用开发
5.0版本 新的结构“流”
常用命令
XADD 往指定的流中添加消息XLEN stream流中的消息数量XDEL 删除流中的消息XRANGE 返回流中满足给定ID范围的消息XREAD 从一个或者多个流中读取消息XINFO 检索关于流和关联的消费者组的不同的信息
工作示意图
生产者发布消息到频道,消费者订阅频道,从频道接收消息。两者彼此相互不了解。
常用命令
PUBLISH 将信息 message 发送到指定的频道 channelPUBSUB 检测PUB/SUB子系统的状态,由描述的子命令组成SUBSCRIBE 订阅指定的频道消息UNSUBSCRIBE 退订给定的频道,若没有指定频道,则退订所有频道PSUBSCRIBE 订阅者希望订阅的模式,可以通过?、*、[]三种方式来指定PUNSUBSCRIBE 退订指定模式,若果没有提供模式则退出所有模式。
转载地址:http://hujdi.baihongyu.com/