Home >Database >Mysql Tutorial >Redis全内存运行

Redis全内存运行

WBOY
WBOYOriginal
2016-06-07 16:40:531352browse

在某些使用场景中,我们并不需要使用Redis的持久化,反而需要发挥redis的内存数据库特性,实现完全内存运行,达到需要的高性能。

在某些使用场景中,我们并不需要使用Redis的持久化,反而需要发挥redis的内存数据库特性,实现完全内存运行,达到需要的高性能。

Redis 本身支持持久化,通过在一定时间间隔或触发操作,将内存中的数据同步到磁盘来保证持久化。Redis 支持两种持久化方式,一种是  Snapshotting(快照),保存为dump.rdb文件,也是默认方式,另一种是 Append-only file(缩写aof)的方式,保存为 .aof 文件。

Snapshot 快照 通过save或者bgsave命令通知redis做一次快照持久化。save操作是在主线程中保存快照的,由于redis是用一个主线程来处理所有客户端的请求,这种方式会阻塞所有客户端请求。所以不推荐使用。另一点需要注意的是,每次快照持久化都是将内存数据完整写入到磁盘一次,并不是增量的只同步增量数据。如果数据量大的话,写操作会比较多,必然会引起大量的磁盘IO操作,可能会严重影响性能。

在默认的快照 rdb保存方式中,redis.conf 里面的配置如下

save 900 1  #900秒内如果超过1 个key 被修改,则发起快照保存
save 300 10  #300秒内容如超过10个key 被修改,则发起快照保存
save 60 10000

如果我们需要关闭快照,只需要将这几行注释了,然后重启 redis 即可。

如果是正在运行的实例,可以使用 redis-cli的命令

# 查看当前配置
config get save
# 关闭快照
config set save ""

来在线更新配置,输出OK表示设置成功。

AOF  比快照方式有更好的持久化性,是由于在使用aof 持久化方式时, redis 会将每一个收到的写

命令都通过write函数追加到文件中(默认是appendonly.aof) 。当redis 重启时会通过重新执行文件中

保存的写命令来在内存中重建整个数据库的内容

默认配置如下:
 
appendonly yes      //启用日志追加持久化方式
#appendfsync always //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,,推荐
#appendfsync no //完全依赖操作系统,性能最好,持久化没保证

我们需要更新配置文件为:

appendfsync no

在线更新配置使用

# 查看当前配置
config get appendfsync
# 关闭快照
config set appendfsync no

通过这两个配置,redis就可以完全在内存运行。

如果想手动进行持久化,可以使用Redis的 bgsave 和 bgrewriteaof 来手动进行持久化。

Ubuntu 14.04下Redis安装及简单测试

Redis集群明细文档

Ubuntu 12.10下安装Redis(图文详解)+ Jedis连接Redis

Redis系列-安装部署维护篇

CentOS 6.3安装Redis

Redis安装部署学习笔记

Redis配置文件redis.conf 详解

Redis 的详细介绍:请点这里
Redis 的下载地址:请点这里

本文永久更新链接地址:

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn