redis默认的存储是redis持久化存储储还是内存存储

在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我的redis有三个库,我只想持久化存储#3库,其他两个库只在内存中缓存,可以实现吗?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不行,而且多数据库现在不怎么推荐使用了,不如每个库一个redis实例,这样也能满足你的持久化需求
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
Redis如何只使用内存存储而不持久化存储数据(每次重启数据都将变空),也就是说把他当作一个类似于Memcache的内存型缓存来使用,怎么做?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
redis配置里注释掉 save 行
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不启用持久化即可,注释掉save 一行。
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:Redis两种存储机制(持久化)的比较 - CSDN博客
Redis两种存储机制(持久化)的比较
Redis存储机制分成两种Snapshot 和 AOF。无论是那种机制,Redis都是将数据存储在内存中。
& & & Snapshot工作原理: 是将数据先存储在内存,然后当数据累计达到某些设定的伐值的时候,就会触发一次DUMP操作,将变化的数据一次性写入数据文件(RDB文件)。
& & & AOF 工作原理: 是将数据也是先存在内存,但是在存储的时候会使用调用fsync来完成对本次写操作的日志记录,这个日志揭露文件其实是一个基于Redis网络交互协议的文本文件。AOF调用fsync也不是说全部都是无阻塞的,在某些上可能出现fsync阻塞进程的情况,对于这种情况可以通过配置修改,但默认情况不要修改。AOF最关键的配置就是关于调用fsync追加日志文件的平率,有两种预设频率,always每次记录进来都添加,everysecond
每秒添加一次。两个配置各有所长后面分析。由于是采用日志追加的方式来持久话数据,所以引出了第二个日志的概念:rewrite. 后面介绍它的由来。
& & & 存储模式性能和安全比较:
& & & 1.性能:Snapshot方式的性能是要明显高于AOF方式的,原因有两点:
采用2进制方式存储数据,数据文件比较小,加载快速.
存储的时候是按照配置中的save策略来存储,每次都是聚合很多数据批量存储,写入的效率很好,而AOF则一般都是工作在实时存储或者准实时模式下。相对来说存储的频率高,效率却偏低。
& & & 2.数据安全:AOL数据安全性高于Snapshot存储,原因:
Snapshot存储是基于累计批量的思想,也就是说在允许的情况下,累计的数据越多那么写入效率也就越高,但数据的累计是靠时间的积累完成的,那么如果在长时间数据不写入RDB,但Redis又遇到了崩溃,那么没有写入的数据就无法恢复了,但是AOF方式偏偏相反,根据AOF配置的存储频率的策略可以做到最少的数据丢失和较高的数据恢复能力。
说完了性能和安全,这里不得不提的就是在Redis中的Rewrite的功能,AOF的存储是按照记录日志的方式去工作的,那么成千上万的数据插入必然导致日志文件的扩大,Redis这个时候会根据配置合理触发Rewrite操作,所谓Rewrite就是将日志文件中的所有数据都重新写到另外一个新的日志文件中,但是不同的是,对于老日志文件中对于Key的多次操作,只保留最终的值的那次操作记录到日志文件中,从而缩小日志文件的大小。这里有两个配置需要注意:
auto-aof-rewrite-percentage 100 (当前写入日志文件的大小占到初始日志文件大小的某个百分比时触发Rewrite)&
auto-aof-rewrite-min-size 64mb (本次Rewrite最小的写入数据良)
两个条件需要同时满足。
2.Redis内存优化理解
Redis内部有很多的数据类型,这些在官方文档上都可以看到,下面是其内部优化的一些细节点:
<span style="color:#. String 和 数字,在Redis中如果存储的是“123”Redis是能够识别出来这是一个数字并且按照数字来存储,节省存储空间,当然除了这个优化之外,Redis内部会构建一个数字池,默认是10000,那么如果是在这个池子的数字就只需要用一个简单的索引来引用进来就可以,而不需要把重复的数字都分开存储。这个数&#20540;可以调整源代码的宏:REDIS_SHARED_INTEGERS来扩大和缩小池子的大小。
<span style="color:#.复杂类型的存储优化,比如Map,List,Set等,这些集合都有一个特点可大可小,根据实际场景来定,一般情况下如果这些集合所包含的Entry不多,并且每个Entry所包含的Value不是很长的情况下,Redis内部使用紧凑&#26684;式来存储数据,紧凑&#26684;式存储数据在查询场景的算法复杂度是O(N),而类&#20284;Map或者Set他们的查询算法复杂度都是O(1)那为什么要这么做呢
?为了能够节省内存空间,在N很小的时候其实和O(1)没什么区别。所以这里不的不介绍紧凑&#26684;式的代表ZIPMap,他的数据结构是这样:
可以看出,这个结构中初始情况只有2个字节,随着操作的增加它会变长,其中最关键的是一个关于Free这个字段的理解,以Map为例,如果新插入一个Key,那么对应ZipMap就会多出来一长串数据:&len&&key&&len&&free&&value&。从图中可以看到插入key1的时候只有绿色的一串,当key2插入的时候就会又出来一个类&#20284;的黄色结构串。free的功能是在插入的时候用来冗余空间的,当key所对应的数&#20540;发生变化的时候,如果数据变的比之前短了,那么free的长度就变大,这个时候不需要做ZipMap的resize操作,如果数据长度变长了,并且在free能够足以支持新数据的范围之内,那么free就被利用起来,并且也不需要做Resize。这个时候会有空间的浪费或者说碎片。空间换时间,没什么好说的。当然Redis的代码中还有另外一个参数ZIPMAP_VALUE_MAX_FREE,这个参数可以用来设置如果Free的大小超过了这个&#20540;,那么ZipMap会发生Resize(收缩),从而节约空间
本文已收录于以下专栏:
相关文章推荐
/q/1147?src=140
http://blog.chinaunix.net/uid-429659-id-5190759.ht...
Redis中数据存储模式有2种:cache-only,
cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的...
Redis中数据存储模式有2种:cache-only,
ocache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”...
cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;
persistence即为内存中的数据...
RDB和AOF持久化对比
Redis提供了RDB持久化和AOF持久化,本篇文章中将会对这两种机制进行一些对比
RDB机制的优势和略施
RDB持久化是指在指定的时间间隔内将内存中的数据...
在说Redis持久化之前,需要搞明白什么是数据库状态这个概念,因为持久化的就是将内存中的数据库状态保存到磁盘上。那么什么是数据库状态呢?Redis是一个key-value数据库服务器,一般默认是有16...
reids是一个key-value存储系统,为了保证效率,缓存在内存中,但是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,以保证数据的持久化。
所以:redis是一...
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集
合和有序集合。支持在服务器端计算集合的并,交和补集(di...
关于redis两种持久化方式的学习总结
Redis的两种持久化方式Snapshotting持久化(快照,默认),RDB持久化默认生成的文件名为dump.rdb,以下为配置文件的信息save 900 1
#900秒内如果超过1个key被修改...
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)君,已阅读到文档的结尾了呢~~
TOF基础服务高性能缓存系统设计与实现缓存,性能,T,设计与实现,缓存系统,系统性能,高性能,与实现,缓存设计,设计和
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
TOF基础服务高性能缓存系统设计与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 redis 默认最大内存 的文章

 

随机推荐