`
stephen830
  • 浏览: 2966921 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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 来手动进行持久化。

 

 

分享到:
评论

相关推荐

    如何监控mysql,redis运行状况(CPU,内存)

    如何监控mysql,redis运行状况(CPU,内存)

    swift-XGIOSRedis一个运行在ios上的redis内存kv库;

    XGIOSRedis一个运行在ios上的redis内存kv库;

    redis-mock-java:Java中Redis的内存中实现

    redis-mock-java 用纯Java编写的与内存Redis兼容的实现。 。地位安装专家< dependency> < groupId>org.rarefiedredis.redis</ groupId> < artifactId>redis-java</ artifactId> < version>0.0.5</ version></ ...

    C#使用Redis内存数据库

    ///该测试程序调用了两个类库,分别是ServiceStack.Redis和StackExchange.Redis,每个类库都可单独使用, ///分三个部分进行 ///1。使用类库为ServiceStack.Redis,使用简单的RedisManger类...复制代码,运行程序即可

    redis-cli命令二进制包,linux环境独立可运行

    这是基于官方的redis5.0.9版本源码包在linux系统中编译出来的redis-cli,用户远程连接其他的redis,运行命令,处理大key和热hey等等,软件4.5M。 如果你自己通过安装redis来使用里面的redis-cli,首先55M的磁盘没了...

    Redis Cluster 踩坑案例之内存占用飙升

    Redis Cluster 某个分片(10.20.2.53:7101)内存飙升,明显比其它高跟多,而且持续增长并达到了峰值。并且主从的内存使用量不一致。 IP 监听端口 主/从 实例状态 内存使用 对象数 连接数 命中率 10.20.0.40 ...

    查看Redis内存信息的命令

    info 命令用于监控Redis运行情况,其中 info memory 可以查看Redis内存使用统计信息: redis-cli info memory 命令输出结果如下图: 前几个字段信息最为重要,其含义分别为: 属性名 属性说明 used_memory ...

    Linux安装Redis、后台运行、系统自启动的设置方法

    Redis是用C语言编写的开源免费的高性能的分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。 安装 1)从官网http://download.redis.io/releases/ 下载redis压缩包,如redis-5.0.3.tar.gz 2)上传Linux...

    Redis官方可视化工具RedisInsight

    RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持)...

    linux-redis

    Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。

    RedisDesktopManager Version0.99 内存数据库管理神器

    RedisDesktopManager Version0.99 内存数据库管理神器 该管理软件 主要用于远程管理redis, 用于日常维护与日常操作查看redis运行状况及资源使用相关情况。

    Redis课件.docx

    Redis基本学习过程课件,可以快速入门redis知识。Remote Dictionary Server(远程字典服务器),是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL数据库.也是当前热门的NoSQL数据库之一。

    redis-6.2.1-x64-for-windows-bin.zip

    Redis 6.2.1 现已发布,该版本升级迫切性程度为低:修复了编译问题。具体更新内容如下: Bug 修复 修复带有已删除记录的 stream 的 sanitize-dump-payload(#8568) 防止将 client-query-buffer-limit 配置设置为...

    Redis开发 保姆级Redis开发教程.zip

    性能极高,因为数据保存在运行内存(Redis能读的速度是110000次/s,写的速度是81000次/s 。) 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。 安装 Liunx 安装 Tips:redis官网: 下载选择...

    Redis-x64-3.0.504可视化迷你安装包.zip

    Redis的高性能在于其采用的单线程架构,确保在单个线程运行时,数据的原子性和可靠性。 5. 分布式 Redis支持分布式部署,可以通过集群的方式实现数据的扩容和负载均衡。 除了这些特点,Redis还有许多其他详细的...

    redis-mock-0.1.6.jar

    redis-mock是一个专门为Redis设计的单元测试工具,它能在不需要连接真实Redis服务器的情况下,提供redis-mock是一个...此外,redis-mock是内存中运行的,因此在进行单元测试时无需额外的依赖,只需添加对应的依赖即可

    Redis-x64-5.0.9.7z

    以下是对redis的介绍:Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起...

    redis windos客户端

    redis 是一个key - value 方式的缓存数据库,主要运行在内存中,不定时持久化到本地硬盘中,在各种大型高并发项目中都有应用。

    :magnifying_glass_tilted_right:分析redis的内存是找到占用大量内存的键(前缀),然后将分析结果导出到csv文件中。-PHP开发

    Redis内存分析:magnifying_glass_tilted_right:分析Redis的内存是找到占用大量内存的键(前缀),并将分析结果导出到csv文件中。 要求PHP 5.4或更高版本ext-redis> = 2.2.8 predis / predis〜1.1.0通过Composer...

Global site tag (gtag.js) - Google Analytics