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,内存)
XGIOSRedis一个运行在ios上的redis内存kv库;
redis-mock-java 用纯Java编写的与内存Redis兼容的实现。 。地位安装专家< dependency> < groupId>org.rarefiedredis.redis</ groupId> < artifactId>redis-java</ artifactId> < version>0.0.5</ version></ ...
///该测试程序调用了两个类库,分别是ServiceStack.Redis和StackExchange.Redis,每个类库都可单独使用, ///分三个部分进行 ///1。使用类库为ServiceStack.Redis,使用简单的RedisManger类...复制代码,运行程序即可
这是基于官方的redis5.0.9版本源码包在linux系统中编译出来的redis-cli,用户远程连接其他的redis,运行命令,处理大key和热hey等等,软件4.5M。 如果你自己通过安装redis来使用里面的redis-cli,首先55M的磁盘没了...
Redis Cluster 某个分片(10.20.2.53:7101)内存飙升,明显比其它高跟多,而且持续增长并达到了峰值。并且主从的内存使用量不一致。 IP 监听端口 主/从 实例状态 内存使用 对象数 连接数 命中率 10.20.0.40 ...
info 命令用于监控Redis运行情况,其中 info memory 可以查看Redis内存使用统计信息: redis-cli info memory 命令输出结果如下图: 前几个字段信息最为重要,其含义分别为: 属性名 属性说明 used_memory ...
Redis是用C语言编写的开源免费的高性能的分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。 安装 1)从官网http://download.redis.io/releases/ 下载redis压缩包,如redis-5.0.3.tar.gz 2)上传Linux...
RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持)...
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。
RedisDesktopManager Version0.99 内存数据库管理神器 该管理软件 主要用于远程管理redis, 用于日常维护与日常操作查看redis运行状况及资源使用相关情况。
Redis基本学习过程课件,可以快速入门redis知识。Remote Dictionary Server(远程字典服务器),是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL数据库.也是当前热门的NoSQL数据库之一。
Redis 6.2.1 现已发布,该版本升级迫切性程度为低:修复了编译问题。具体更新内容如下: Bug 修复 修复带有已删除记录的 stream 的 sanitize-dump-payload(#8568) 防止将 client-query-buffer-limit 配置设置为...
性能极高,因为数据保存在运行内存(Redis能读的速度是110000次/s,写的速度是81000次/s 。) 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。 安装 Liunx 安装 Tips:redis官网: 下载选择...
Redis的高性能在于其采用的单线程架构,确保在单个线程运行时,数据的原子性和可靠性。 5. 分布式 Redis支持分布式部署,可以通过集群的方式实现数据的扩容和负载均衡。 除了这些特点,Redis还有许多其他详细的...
redis-mock是一个专门为Redis设计的单元测试工具,它能在不需要连接真实Redis服务器的情况下,提供redis-mock是一个...此外,redis-mock是内存中运行的,因此在进行单元测试时无需额外的依赖,只需添加对应的依赖即可
以下是对redis的介绍:Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起...
redis 是一个key - value 方式的缓存数据库,主要运行在内存中,不定时持久化到本地硬盘中,在各种大型高并发项目中都有应用。
Redis内存分析:magnifying_glass_tilted_right:分析Redis的内存是找到占用大量内存的键(前缀),并将分析结果导出到csv文件中。 要求PHP 5.4或更高版本ext-redis> = 2.2.8 predis / predis〜1.1.0通过Composer...