redis进阶
来源:互联网 发布:电脑截gif软件 编辑:程序博客网 时间:2024/06/02 03:03
redis入门博客地址:Redis入门
1.Slave与master建立连接,发送sync同步命令
2.Master会启动一个后台进程,将数据库快照保存到文件中,同时master进程会开始收集新的写命令并缓存。
3.后台完成保存后,就将此文件发送给slave
4.Slave将此文件保存到硬盘上
如果进行写操作则会报如下的错误:
(error) READONLY You can't write against a read only slave.
问题:是否有必要开启redis的写操作权限呢?
http://www.tuicool.com/articles/VBzMz2u
那是不是只要用redis的话,就尽量打开slave可写选项呢?我认为,这个选项尽量不要打开。事实上,默认的redis.conf也是没有打开这个选项。原因是,即使打开了这个选项,向redis slave中写了数据,写入的数据也不会同步到master。所以,redis支持的是master-slave结构,而不是master-master这种双活结构。
当下一次,master上的数据又有所修改之后,这个数据又会同步到slave上,slave上临时写入的数据就会丢失。
参考博客:redis主从切换集群管理
Redis支持的持久化方式
redis支持四种持久化方式:
1.Snapshotting(快照)
快照是Redis默认的持久化方式。
在默认情况下,Redis将数据库快照保存在名字为 dump.rdb 的二进制文件中。
你可以对Redis进行设置,让它在“N秒内数据集至少有M个改动”这一条件被满足时,自动保存一次数据集。
你也可以通过调用 SAVE 或者 BGSAVE ,手动让Redis进行数据集保存操作。
比如说,以下设置会让Redis在满足“60秒内有至少有1000个键被改动”这一条件时,自动保存一次数据集:
我们也可以手动的触动快照操作,使用的命令是SAVE和BGSAVE.
BGSAVE命令会进行后台保存。
2.Append-only file(缩写aof)的方式
默认情况下Redis没有开启AOF方式的持久化,可以通过appendonly参数开启。
3.虚拟内存方式
4.diskstore方式
RDB 和 AOF ,我应该用哪一个?
一般来说,如果想达到足以媲美 PostgreSQL 的数据安全性,你应该同时使用两种持久化功能。
如果你非常关心你的数据,但仍然可以承受数分钟以内的数据丢失,那么你可以只使用 RDB 持久化。
有很多用户都只使用AOF持久化,但我们并不推荐这种方式:因为定时生成RDB快照(snapshot)非常便于进行数据库备份,
并且RDB恢复数据集的速度也要比 AOF 恢复的速度要快,
除此之外,使用 RDB 还可以避免之前提到的AOF程序的bug。
遇到问题
操作redis时,报过这样的错误:
(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
解决方法:
redis有4种持久化方式。
RDB
Redis默认的持久化方式是快照。
AOF
快照模式可以和AOF模式同时开启,互不影响
五、发布订阅消息
消息publish/subscribe
比较典型的场景是登录,可以用来做分布式session管理(session共享)
基于redis的list可以实现消息队列。这个是非常有用的一个了。
发布订阅:消息publish/subscribe 。
Redis作者谈Redis应用场景
一、安全性
可以在增加requirepass 密码,则客户端连接服务器时需要密码认证才能连接redis服务器。二、Redis主从备份
redis主从复制过程:1.Slave与master建立连接,发送sync同步命令
2.Master会启动一个后台进程,将数据库快照保存到文件中,同时master进程会开始收集新的写命令并缓存。
3.后台完成保存后,就将此文件发送给slave
4.Slave将此文件保存到硬盘上
具体的配置:
克隆一台配置好的虚拟机(被克隆的机器作为Master主服务器,克隆后的机器作为Slave从服务器)。然后修改克隆后的机器的配置,修改其mac地址,ip地址,主机名hostname。然后修改redis配置,要设置slave机器为master的从服务器:
slaveof主服务器 端口
如果进行写操作则会报如下的错误:
(error) READONLY You can't write against a read only slave.
问题:是否有必要开启redis的写操作权限呢?
http://www.tuicool.com/articles/VBzMz2u
那是不是只要用redis的话,就尽量打开slave可写选项呢?我认为,这个选项尽量不要打开。事实上,默认的redis.conf也是没有打开这个选项。原因是,即使打开了这个选项,向redis slave中写了数据,写入的数据也不会同步到master。所以,redis支持的是master-slave结构,而不是master-master这种双活结构。
当下一次,master上的数据又有所修改之后,这个数据又会同步到slave上,slave上临时写入的数据就会丢失。
演示redis的主从切换
需要三台虚拟机,一台主服务器,一台从服务器,一台redis sentinel做集群监控。参考博客:redis主从切换集群管理
三、Redis中的事务
Redis中的事务是一组命令的集合。四、持久化机制
参考网址:Redis持久化Redis支持的持久化方式
redis支持四种持久化方式:
1.Snapshotting(快照)
快照是Redis默认的持久化方式。
在默认情况下,Redis将数据库快照保存在名字为 dump.rdb 的二进制文件中。
你可以对Redis进行设置,让它在“N秒内数据集至少有M个改动”这一条件被满足时,自动保存一次数据集。
你也可以通过调用 SAVE 或者 BGSAVE ,手动让Redis进行数据集保存操作。
比如说,以下设置会让Redis在满足“60秒内有至少有1000个键被改动”这一条件时,自动保存一次数据集:
save 60 1000 //60秒内有至少有1000个键被改动这种持久化方式被称为快照(snapshot)。
我们也可以手动的触动快照操作,使用的命令是SAVE和BGSAVE.
BGSAVE命令会进行后台保存。
2.Append-only file(缩写aof)的方式
默认情况下Redis没有开启AOF方式的持久化,可以通过appendonly参数开启。
appendonly yes开启AOF持久化后每执行一条更改Redis中的数据的命令,Redis就会将改命令写入到硬盘的AOF文件中。AOF文件的保存位置与RDB文件的保存位置相同,都是可以通过dir参数设置的,默认的文件名是appendonly.conf,可以通过appendfilename参数修改:
appendfilename appendonly.aof默认情况下系统每30秒回执行一次同步操作,以便将硬盘缓存中的内容真正地写入硬盘,在这30秒的过程中如果系统异常退出则会导致硬盘缓存中的数据丢失。
3.虚拟内存方式
4.diskstore方式
RDB 和 AOF ,我应该用哪一个?
一般来说,如果想达到足以媲美 PostgreSQL 的数据安全性,你应该同时使用两种持久化功能。
如果你非常关心你的数据,但仍然可以承受数分钟以内的数据丢失,那么你可以只使用 RDB 持久化。
有很多用户都只使用AOF持久化,但我们并不推荐这种方式:因为定时生成RDB快照(snapshot)非常便于进行数据库备份,
并且RDB恢复数据集的速度也要比 AOF 恢复的速度要快,
除此之外,使用 RDB 还可以避免之前提到的AOF程序的bug。
遇到问题
操作redis时,报过这样的错误:
(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
解决方法:
redis-cli config set stop-writes-on-bgsave-error no
redis有4种持久化方式。
RDB
Redis默认的持久化方式是快照。
AOF
快照模式可以和AOF模式同时开启,互不影响
五、发布订阅消息
消息publish/subscribe六、虚拟内存的使用
七、Redis在项目中的使用
redis可以作为缓存层。比较典型的场景是登录,可以用来做分布式session管理(session共享)
基于redis的list可以实现消息队列。这个是非常有用的一个了。
发布订阅:消息publish/subscribe 。
Redis作者谈Redis应用场景
0 0
- redis进阶
- Redis进阶
- Redis进阶
- redis 进阶
- redis进阶
- REDIS 进阶(12) redis分片
- 【Redis进阶】Redis哨兵机制
- 【Redis进阶】redis.conf详解
- Redis入门、进阶、实战
- Redis进阶 ----事务
- Redis学习笔记-进阶
- 大话Redis进阶
- redis进阶2-事务管理
- redis进阶3-排序
- redis 基础+进阶
- 大话Redis进阶
- Redis集群进阶-使用集群
- redis快速入门-进阶知识
- linux 上安装postgresql 并配置pgadmin iii连接
- js alert
- Tasks and Back Stack
- NSData转为Int
- 探索Freejam的世界:组建,驾驶,然后与Robocraft对抗
- redis进阶
- hadoop -- introduction
- 图像检索:二维直方图+flann+KNN+欧几里得距离
- JS中的盒子模型
- websocket:数组转换成websocket数据
- Linux 下安装 Python 3.4
- 缓存淘汰算法系列之1——LRU类
- Kd-Tree算法原理和开源实现代码
- ZOJ 3714 Java Beans