「Redis」- Remote Dictionary Server

  CREATED BY JENKINSBOT

简单介绍

一个开源(BSD许可)、内存数据结构d的存储,可以作为数据库、缓存、消息代理来使用。

它支持如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询的地理空间索引,流等数据结构。

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版本。

# 使用场景

#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