认识
官网:https://redis.io/open-source/
文档:https://redis.io/docs/latest/operate/oss_and_stack/
仓库:https://github.com/redis/redis
For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine. 简而言之,Redis 是个开源(BSD 许可)、内存数据结构的存储,可以作为数据库、缓存、消息代理来使用。
组成
WIP
构建
WIP
性质
它支持如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询的地理空间索引,流等数据结构。
Redis 具有内置复制,Lua 脚本,LRU 驱逐,事务,不同级别的磁盘持久性,并通过 Redis Sentinel 提供高可用性,并使用 Redis Cluster 自动分区。
您可以对某些数据类型运行“原子操作”。例如,追加字符串;递增哈希值;将元素推到 List 中;计算 Set 的交集、并集、差异;或者在 Sorted set 中获得排名最高的成员。
为了实现其出色的性能,Redis 使用“内存数据集”。根据您的使用情况,您可以通过每隔一段时间将数据集转储到磁盘,或通过将每个命令附加到日志的方式来保留它。如果您只需要功能丰富的网络内存缓存,则可以选择禁用数据持久化。
Redis 还支持「主从异步复制」,具有非常快速的非阻塞首次同步,自动重新连接以及在网络分割上的部分重新同步。
其他的特性还有:
- 事务支持
- 发布 / 订阅
- 执行 Lua 脚本
- 生存时间
- LRU 驱逐
- 自动故障转移
可以在多种编程语言中使用 Redis 服务。
Redis 是用 ANSI C 编写的,适用于大多数 POSIX 系统,如 Linux,*BSD,OS X,没有外部依赖性。Linux 和 OS X 是 Redis 开发和测试的两个操作系统,建议使用 Linux 进行部署。在 Solaris 衍生系统(如 SmartOS)中也可以运行 Redis 服务,但尽量支持。Windows 版本没有官方支持,但 Microsoft 开发并维护了 Redis 的 Win-64 版本。
应用
服务部署
2.2 Construction and Management // 服务简单部署;服务简单使用;运行服务并验证能够访问;
Backup, Recover, Migrate
Observability of Service // 服务观测
Performance Tuning, Trace // 性能优化:基准测试;压力测试;
Security and Permission
服务使用
#1 会话共享
和 Memcached 类似,Redis 最明显的用例之一是将其用作会话缓存。
与其他会话存储相比,使用 Redis 的优势是 Redis 提供了数据的持久化存储。
#2 数据缓存
缓存页面,提供页面的加载速度。即使发生了重启,通过持久化存储,页面的加载速度也不会下降很多。
#3 消息队列
利用 Redis 的内存存储引擎来进行 list 和 set 操作,使其成为一个用于消息队列的平台。
#4 排行榜 / 统计功能
它支持数值增量和减量。同时也可以进行排序取值操作。
#5 发布 / 订阅
最后是 Redis 的 Pub/Sub 功能。Pub/Sub 有非常多的用例。我见过人们将它用于社交网络连接,触发基于 Pub/Sub 事件的脚本,甚至是使用 Redis Pub / Sub 构建的聊天系统!
参考
https://redis.io
Introduction to Redis
Top 5 Redis Use Cases
11 Common Web Use Cases Solved in Redis
Redis Use Cases