欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

redis 系列2 知识点概述

程序员文章站 2022-07-02 22:50:16
一.概述 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmap ......

一.概述

  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官网: