内容简介:Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU evictio
一.概述
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis 哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
Redis是用ANSI C编写的,适用于大多数POSIX系统,如Linux,* BSD,OS X,没有外部依赖性。Linux和OS X是Redis开发和测试的两个操作系统,我们建议使用 Linux 进行部署。Redis可能在Solaris衍生系统(如SmartOS)中工作,但支持是最好的努力。Windows版本没有官方支持,但Microsoft开发并维护了Redis的Win-64端口。
二. Redis 优势
1. 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
2.丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
3.原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
4.丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
三. Redis的主要知识点
在后继学习Redis 数据库时,先了解主要的知识点,后面学习时,下面的知识点序号不分先后,往后再补上其它知识点,以最简短的文字概括描述。
1. 数据结构与对象 data structures
Redis数据库里面的每个键值对 (key-value pair) 都是由对象(object) 组成的,其中数据库键总是一个字符串对象(string object)。 而数据库键的值可以是字符串对象,列表对象(list object), 哈希对象(hash object)也叫散列, 集合对象(set object), 有序集合对象(stoted set object) 五种以及3.0版本之上的其它结构对象。
2. 复制Replication
在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Redis 服务器(下文称 slave)能精确得复制主 Redis 服务器(下文称 master)的内容。每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这期间 master 发生了什么, slave 都将尝试让自身成为 master 的精确副本。
3. 持久化disk persistence
Redis 提供了不同级别的持久化方式包括:讲述RDB持久化和 AOF持久化。(1) RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储. (2) AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾。Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。
4. LUA脚本
Redis 从2.6.0 版本开始对 Lua 脚本的支持,通过在服务器中嵌入Lua 环境, Redis 客户端可以使用Lua脚本。命令包括:EVAL 和 EVALSHA, 可以对Lua脚本进行求值。
5. 驱动事件LRU eviction
redis 服务器是一个事件驱动程序, 服务器需要处理两类事件包括:文件事件和时间事件。当Redis被当做缓存来使用,当你新增数据时,让它自动地回收旧数据是件很方便的事情。这个行为在开发者社区非常有名,因为它是流行的 memcached 系统的默认行为。
6. 事务 transcation
redis 通过 MULTI 、 EXEC 、 DISCARD 和 WATCH等命令来实现事务功能, 事务提供了一种将多个命令请求打包,然后一次性,按顺序的执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而改去执行其它客户端的命令请求,它会将事务中的所有命令都执行完毕,然后才去处理其它客户端的命令请求。
7. 哨兵 Sentinel
Sentinel 是redis 高可用的解决方案,由一个或多个Sentinel 实例(instance)组成的Sentinel 系统(system) 可以监视任意多个主服务器,以及这些主服务器下的所有从服务器。该系统执行以下三个任务包括:监控,提醒,自动故障迁移。
8. 集群 Cluster
Redis 集群是 Redis 提供分布式数据库方案,集群通过分片 (sharding)来进行数据共享,并提供复制和故障转移功能。
9. 发布与订阅
Redis的发布与订阅功能由 SUBSCRIBE, PUBLISH, psubscribe等命令组成,通过执行 SUBSCRIBE命令,客户端可以订阅一个或多个频道,从而成为这些频道的订阅者 (subscriber)。 每当有其它客户端向被订阅的频道发送消息 (message)时,频道的所有订阅者都会收到这条消息。
了解更多查看Redis官网: http://www.redis.cn/
以上所述就是小编给大家介绍的《redis 系列2 知识点概述》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Nature of Code
Daniel Shiffman / The Nature of Code / 2012-12-13 / GBP 19.95
How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital w......一起来看看 《The Nature of Code》 这本书的介绍吧!