1.
Redis常用的命令有很多,以下是一些常用的命令:
- SET key value:设置key-value键值对。
- GET key:获取key对应的value。
- DEL key:删除key-value键值对。
- EXISTS key:判断key是否存在。
- INCR key:将key中储存的数字值增一。
- DECR key:将key中储存的数字值减一。
- HSET key field value:设置hash类型数据结构中的field-value键值对。
- HGET key field:获取hash类型数据结构中field对应的value。
- HGETALL key:获取hash类型数据结构中所有field-value键值对。
- LPUSH key value1 [value2]:将一个或多个值插入到列表头部。
- RPUSH key value1 [value2]:将一个或多个值插入到列表尾部。
- LPOP key:移除并返回列表的第一个元素。
- RPOP key:移除并返回列表的最后一个元素。
还有很多其他命令,你可以在Redis官方文档 中查看更多命令及其详细说明。
2
-
Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset (sorted set:有序集合)。https://www.runoob.com/redis/redis-data-types.html123
- String(字符串):string 是 redis 最基本的类型,一个 key 对应一个 value。
- Hash(哈希):hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
- List(列表):list 是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部或尾部。
- Set(集合):set 是 string 类型的无序集合,也不允许重复的数据。
- Zset (sorted set:有序集合):zset 和 set 一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
3.
redis常用的业务场景
常见的业务场景有:
- 缓存:由于 Redis 速度快,支持的数据类型比较丰富,所以 Redis 很适合用来存储热点数据。
- 分布式锁:Redis 的单线程特性,使得它很适合用来实现分布式锁。
- 计数器:Redis 的原子性操作,使得它很适合用来实现计数器。
- 消息队列:Redis 的 List 数据类型,使得它很适合用来实现消息队列。
- 限流:Redis 的计数器和过期时间特性,使得它很适合用来实现限流。
- 全局ID:Redis 的原子性操作和自增特性,使得它很适合用来生成全局唯一 ID。
- 时间轴(Timeline):Redis 的 Sorted Set 数据类型,使得它很适合用来实现时间轴。
4.
Redis中的消息队列是什么?
Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。
Redis 中的 List 数据类型和 ZSet 数据类型都可以用做“消息队列”的容器,稍加处理就可以实现一个高可用的“消息队列”。
Redis 5.0 版本新增加了 Redis Stream 数据结构,主要用于消息队列(MQ,Message Queue)。
5.
怎么理解消息队列中的发布订阅?