redis 系列2 知识点概述

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 原文:redis 系列2 知识点概述一.概述   Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
原文: redis 系列2 知识点概述

一.概述

  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设计与实现“  以及查看Redis官网:http://www.redis.cn/

 

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5月前
|
存储 NoSQL 测试技术
关于redis涉及的知识点,C语言如何操作redis
关于redis涉及的知识点,C语言如何操作redis
|
8月前
|
存储 缓存 NoSQL
redis知识点
redis 知识点
59 0
|
8月前
|
缓存 监控 NoSQL
【Redis】Redis知识点阶段性总结 2
【Redis】Redis知识点阶段性总结
42 0
|
8月前
|
NoSQL Linux Redis
【Redis】Redis知识点阶段性总结 1
【Redis】Redis知识点阶段性总结
65 0
|
9月前
|
存储 SpringCloudAlibaba 运维
Redis高级知识点总结
在 Redis 6.0 中,非常受关注的第一个新特性就是多线程。这是因为,Redis 一直被大家熟知的就是它的单线程架构,虽然有些命令操作可以用后台线程或子进程执行(比如数据删除、快照生成、AOF 重写),但是,**从网络 IO 处理到实际的读写命令处理,都是由单个线程完成的**。随着网络硬件的性能提升,Redis 的性能瓶颈有时会出现在网络 IO 的处理上,也就是说,单个主线程处理网络请求的速度跟不上底层网络硬件的速度
229 0
Redis高级知识点总结
|
11月前
|
存储 缓存 监控
全新Redis6全部知识点,零基础入门3
全新Redis6全部知识点,零基础入门
12173 1
|
11月前
|
运维 NoSQL 网络协议
关于Redis的知识点,你都学会了吗?2
关于Redis的知识点,你都学会了吗?2
131 0
|
11月前
|
存储 消息中间件 缓存
关于Redis的知识点,你都学会了吗?1
Redis的介绍、优缺点、使用场景 Linux中的安装 常用命令 Redis各个数据类型及其使用场景 Redis字符串(String) Redis哈希(Hash) Redis列表(List) Redis集合(Set) Redis有序集合(sorted set) Redis - 瑞士军刀 慢查询 pipeline流水线 发布订阅 bitmap HyperLogLog算法 GEO Redis持久化,数据备份与恢复 RDB AOF SpringBoot + Jedis + 1主2从3哨兵 实现Redis的高可用 SpringBoot + Jedis + Redis Cluster代码案例 高可用 主
105 0
|
存储 NoSQL 安全
【Redis】回顾下Redis基础知识点,还记得哪些?
回顾下Redis基础知识点,还记得哪些?Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 的数据类型都是基于基本数据结构的,比如支持它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型 ,同时对程序员透明,无需进行额外的抽象,使用方便。
103 0