《redis介绍》PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 主-从复制
Redis支持简单而快速的主-从复制。官方提供了一个数据,Slave在21 秒即完成了对Amazon网站10G key set的复制。
▪ Sharding
很容易将数据分布到多个Redis实例中,但这主要看该语言是否支持。 目前支持Sharding功能的语言只有PHP、Ruby和Scala。
▪ 持久化 由于所有数据保持在内存中(2.0版本开始可以只将部分数据的value放 在内存,见“虚拟内存”),所以对数据的更新将异步地保存到磁盘 上,Redis提供了一些策略来保存数据,比如根据时间或更新次数。
▪ 数据结构 可以将Redis看做“数据结构服务器”。目前,Redis支持5种数据结构。
Page ▪ 8
一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。 ▪ *rdbcompression:是否使用压缩 ▪ *dbfilename:数据快照文件名(只是文件名,不包括目录) ▪ *dir:数据快照的保存目录(这个是目录) ▪ *appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数
▪ list的最大长度是2^32-1个元素
Page ▪ 12
12
set类型
▪ set就是redis string的无序集合,不允许有重复元素 ▪ set的最大元素数是2^32-1 ▪ 对set的操作还有交集、并集、差集等
Page ▪ 13
13
zset类型
▪ zset是set的一个升级版本,在set的基础上增加了一个顺序 属性,这一属性在添加修改元素时可以指定,每次指定后 zset会自动安装指定值重新调整顺序。可以理解为一张表, 一列存value,一列存顺序。操作中的key理解为zset的名字。
8
▪ 自动操作
Redis对不同数据类型的操作是自动的,因此设置或增加key值,从一 个集合中增加或删除一个元素都能安全的操作。
▪ 支持多种语言
Redis支持多种语言,诸如Ruby, Python, Twisted Python, PHP, Erlang, Tcl, Perl, Lua, Java, Scala, Clojure等。
据抗风险能力,但影响效率。 ▪ *appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用
fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
Page ▪ 6
6
▪ #Redis的复制配置 ▪ # slaveof <masterip> <masterport> ▪ # masterauth <master-password> ▪ # 连接时所需的密码 ▪ #requirepass foobared ▪ #最大客户端连接数 ▪ # maxclients 128 ▪ #最大内存使用率 ▪ maxmemory <bytes> 设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期
11
list类型
▪ redis的list类型其实就是一个每个子元素都是string类型的 双向链表,所以[lr]push和[lr]pop命令的算法时间复杂度都 是O(1),另外list会记录链表的长度,所以llen操作也是O(1).
▪ 可以通过push,pop操作从链表的头部或者尾部添加删除元 素。这使得list既可以用作栈,也可以用作队列
Page ▪ 9
9
数据类型及操作方法
▪ string(字符串) ▪ list(双向链表) ▪ set(无序集合) ▪ zset(有序集合) ▪ hash(hash表)
Page ▪ 10
10
string类型
▪ string是redis最基本的类型,而且string类型是二进制安全 的。意思是redis的string可以包含任何数据。比如jpg图片 或者序列化的对象
▪ Redis是一个开源的使用ANSI C语言编写、支持网络、可 基于内存亦可持久化的日志型、Key-Value数据库,并提供 多种语言的API。从2010年3月15日起,Redis的开发工作 由VMware主持。
▪ 启动流程及处理流程:/html/1413.html
▪ 从内部实现来看其实string可以看作byte数组,最大上限是 1G字节
▪ string类型的值也可视为integer,从而可以让“incr”命令 族操作,这种情况下,该integer的值限制在64位有符号数
▪ 在list、set和zset中包含的独立的元素类型都是string类型
Page ▪ 11
或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。
Page ▪ 7
7
Redis特性
▪ 速度快 Redis使用标准C编写实现,而且将所有数据加载到内存中,所以速度 非常快。官方提供的数据表明,在一个普通的Linux机器上,Redis读写 速度分别达到81000/s和110000/s。
Page ▪ 3
3
启动流程
Page ▪ 4
4
命令处理流程
Page ▪ 5
5
▪ *daemonize:是否以后台daemon方式运行 ▪ *pidfile:pid文件位置 ▪ *port:监听的端口号,默认端口号是6379 ▪ *timeout:请求超时时间 ▪ *loglevel:log信息级别 ▪ *logfile:log文件位置 ▪ *databases:开启数据库的数量 ▪ *save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在
Redis介绍
林超旗 2011.10.16
主要内容
▪ 简介与配置 ▪ 特性 ▪ 数据类型 ▪ 持久化机制及问题 ▪ 主从复制及问题 ▪ 命令总结 ▪ 思考源自Page ▪ 22
简介与配置
Redis官网是这么描述的:
▪ Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
Redis支持简单而快速的主-从复制。官方提供了一个数据,Slave在21 秒即完成了对Amazon网站10G key set的复制。
▪ Sharding
很容易将数据分布到多个Redis实例中,但这主要看该语言是否支持。 目前支持Sharding功能的语言只有PHP、Ruby和Scala。
▪ 持久化 由于所有数据保持在内存中(2.0版本开始可以只将部分数据的value放 在内存,见“虚拟内存”),所以对数据的更新将异步地保存到磁盘 上,Redis提供了一些策略来保存数据,比如根据时间或更新次数。
▪ 数据结构 可以将Redis看做“数据结构服务器”。目前,Redis支持5种数据结构。
Page ▪ 8
一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。 ▪ *rdbcompression:是否使用压缩 ▪ *dbfilename:数据快照文件名(只是文件名,不包括目录) ▪ *dir:数据快照的保存目录(这个是目录) ▪ *appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数
▪ list的最大长度是2^32-1个元素
Page ▪ 12
12
set类型
▪ set就是redis string的无序集合,不允许有重复元素 ▪ set的最大元素数是2^32-1 ▪ 对set的操作还有交集、并集、差集等
Page ▪ 13
13
zset类型
▪ zset是set的一个升级版本,在set的基础上增加了一个顺序 属性,这一属性在添加修改元素时可以指定,每次指定后 zset会自动安装指定值重新调整顺序。可以理解为一张表, 一列存value,一列存顺序。操作中的key理解为zset的名字。
8
▪ 自动操作
Redis对不同数据类型的操作是自动的,因此设置或增加key值,从一 个集合中增加或删除一个元素都能安全的操作。
▪ 支持多种语言
Redis支持多种语言,诸如Ruby, Python, Twisted Python, PHP, Erlang, Tcl, Perl, Lua, Java, Scala, Clojure等。
据抗风险能力,但影响效率。 ▪ *appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用
fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
Page ▪ 6
6
▪ #Redis的复制配置 ▪ # slaveof <masterip> <masterport> ▪ # masterauth <master-password> ▪ # 连接时所需的密码 ▪ #requirepass foobared ▪ #最大客户端连接数 ▪ # maxclients 128 ▪ #最大内存使用率 ▪ maxmemory <bytes> 设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期
11
list类型
▪ redis的list类型其实就是一个每个子元素都是string类型的 双向链表,所以[lr]push和[lr]pop命令的算法时间复杂度都 是O(1),另外list会记录链表的长度,所以llen操作也是O(1).
▪ 可以通过push,pop操作从链表的头部或者尾部添加删除元 素。这使得list既可以用作栈,也可以用作队列
Page ▪ 9
9
数据类型及操作方法
▪ string(字符串) ▪ list(双向链表) ▪ set(无序集合) ▪ zset(有序集合) ▪ hash(hash表)
Page ▪ 10
10
string类型
▪ string是redis最基本的类型,而且string类型是二进制安全 的。意思是redis的string可以包含任何数据。比如jpg图片 或者序列化的对象
▪ Redis是一个开源的使用ANSI C语言编写、支持网络、可 基于内存亦可持久化的日志型、Key-Value数据库,并提供 多种语言的API。从2010年3月15日起,Redis的开发工作 由VMware主持。
▪ 启动流程及处理流程:/html/1413.html
▪ 从内部实现来看其实string可以看作byte数组,最大上限是 1G字节
▪ string类型的值也可视为integer,从而可以让“incr”命令 族操作,这种情况下,该integer的值限制在64位有符号数
▪ 在list、set和zset中包含的独立的元素类型都是string类型
Page ▪ 11
或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。
Page ▪ 7
7
Redis特性
▪ 速度快 Redis使用标准C编写实现,而且将所有数据加载到内存中,所以速度 非常快。官方提供的数据表明,在一个普通的Linux机器上,Redis读写 速度分别达到81000/s和110000/s。
Page ▪ 3
3
启动流程
Page ▪ 4
4
命令处理流程
Page ▪ 5
5
▪ *daemonize:是否以后台daemon方式运行 ▪ *pidfile:pid文件位置 ▪ *port:监听的端口号,默认端口号是6379 ▪ *timeout:请求超时时间 ▪ *loglevel:log信息级别 ▪ *logfile:log文件位置 ▪ *databases:开启数据库的数量 ▪ *save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在
Redis介绍
林超旗 2011.10.16
主要内容
▪ 简介与配置 ▪ 特性 ▪ 数据类型 ▪ 持久化机制及问题 ▪ 主从复制及问题 ▪ 命令总结 ▪ 思考源自Page ▪ 22
简介与配置
Redis官网是这么描述的:
▪ Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.