memcached 可以设置数据redis 设置永不过期期吗

11292人阅读
memcached(2)
1、过期时间限制
memcached的过期时间并不能随便设置,有一个最大时限就是30天,若超过30天后,存储时返回true,但是在取数据的时候取不到。(在取数据的时候才去做验证,看看数据是否失效)
说到这个过期时间了,就不得不说说memcached的缓存失效策略:
memcached的缓存失效策略是LRU(最近最少使用)加上到期失效策略。当向memcached存储数据时,你可能会设置一个过期时间,可以是永久也可以是一段时间,但是如果一旦给memcached分配的内存使用完毕,则首先会替换掉已失效的数据,其次是最近最少使用的数据。
2、存储限制
键被限制在&250&字符之内。数据项不能超过&1M&(这个值由其内存分配机制决定的),因为这是最大的块(&slab&)值。如果对数据超过1M的值进行set,则会返回FALSE。
memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存。在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的。但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下,会导致操作系统比memcached进程本身还慢。Slab Allocator就是为解决该问题而诞生的。Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题.
PHP的扩展memcached默认是对set的数据进行压缩的,也就是说可以存储不止1M的数据。这个需要具体的测试一下。
3、访问限制
最大同时连接数200.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:381224次
积分:3827
积分:3827
排名:第5837名
原创:99篇
转载:82篇
评论:37条
(2)(1)(19)(3)(1)(2)(4)(4)(5)(19)(4)(2)(1)(1)(1)(2)(1)(2)(1)(2)(1)(3)(2)(3)(4)(4)(4)(2)(1)(4)(3)(1)(1)(3)(1)(5)(4)(5)(9)(3)(6)(1)(5)(2)(5)(5)(3)(4)(1)(1)(8)(1)Memcached 真的过时了吗? - 开源中国社区
当前访客身份:游客 [
当前位置:
Memcached 真的过时了吗?
这两年火得可以,Redis也常常被当作的挑战者被提到桌面上来。关于Redis与Memcached的比较更是比比皆是。然而,Redis真的在功能、性能以及内存使用效率上都超越了Memcached吗?
下面内容来自Redis作者在stackoverflow上的一个回答,对应的问题是《》(相比Redis,Memcached真的过时了吗?)
You should not care too much about
performances. Redis is faster per core with small values, but memcached
is able to use multiple cores with a single executable and TCP port
without help from the client. Also memcached is faster with big values
in the order of 100k. Redis recently improved a lot about big values
(unstable branch) but still memcached is faster in this use case. The
point here is: nor one or the other will likely going to be your
bottleneck for the query-per-second they can deliver.
没有必要过多的关心性能,因为二者的性能都已经足够高了。由于Redis只使用单核,而Memcached可以使用多核,所以在比较上,平均每一 个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近 也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。说了这么多,结论是,无论你使用哪一个,每秒处理请求的次数都不会成为瓶 颈。(比如瓶颈可能会在网卡)
You should care about memory usage.
For simple key-value pairs memcached is more memory efficient. If you
use Redis hashes, Redis is more memory efficient. Depends on the use
如果要说内存使用效率,使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。当然,这和你的应用场景和数据特性有关。
You should care about persistence and
replication, two features only available in Redis. Even if your goal is
to build a cache it helps that after an upgrade or a reboot your data
are still there.
如果你对数据持久化和数据同步有所要求,那么推荐你选择Redis,因为这两个特性Memcached都不具备。即使你只是希望在升级或者重启系统后缓存数据不会丢失,选择Redis也是明智的。
You should care about the kind of
operations you need. In Redis there are a lot of complex operations,
even just considering the caching use case, you often can do a lot more
in a single operation, without requiring data to be processed client
side (a lot of I/O is sometimes needed). This operations are often as
fast as plain GET and SET. So if you don&t need just GEt/SET but more
complex things Redis can help a lot (think at timeline caching).
当然,最后还得说到你的具体应用需求。Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在 Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通 常和一般的GET/SET一样高效。所以,如果你需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
来源:(其他人的回答同样值得一看)
memcached 的详细介绍:
memcached 的下载地址:
想通过手机客户端(支持 Android、iPhone 和 Windows Phone)访问开源中国:
旧一篇: 4年前
新一篇: 4年前
相关讨论话题
你也许会喜欢
根本不知道为何物。
2楼:web智能
对楼上两位无语
4楼:liueric
如何更好使用这两个缓存工具是关键,比较这些无谓的性能毫无意义
5楼:童中波
分析很到位
6楼:fzxu_05
引用来自“皮总”的评论对楼上两位无语皮总批评教育的是
7楼:web智能
 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
8楼:李文军
引用来自“talentwang”的评论根本不知道为何物。只能说是无知吧
9楼:Liuxd
晕了,谁说过时了?怎么动不动就是这种论调?
10楼:桔子
好文章,学到不少东西
11楼:hokim
有点标题党改成“Redis与Memcached的比较”是不是更合适
12楼:SeaJones
引用来自“hokim”的评论有点标题党改成“Redis与Memcached的比较”是不是更合适这个赞成。+1,内容还可以。
13楼:MichaelTony
Redis作者分析的很客观
14楼:FeiFan
作者蛮谦虚的嘛
15楼:小鑫
11:20 (非会员)
个人小站,几乎不用缓存机制。
16楼:黑桃
对于设计选择来说,对于上面两个缓存,只要考虑两个方面就好:1. memcache使用多线程机制,redis使用单线程;2. redis支持丰富的数据结构,memcache只有一种
17楼:ZhiWei
引用来自“MichaelTony”的评论Redis作者分析的很客观确实, 这种态度很值得学习.
18楼:xiaoxin
越来越来的选择,但相对来说还是瞒好用的
19楼:甘道夫
sina 微博用redis用的比较多我们在新产品里也用了redis 同时也用了memcache.redis和memcache最大的区别是 memcache的数据是保存在内存里,而redis是存储在二进制文件里因此我们在redis里放了一些经常容易变的数据 这样操作比在数据库里做update要快,在memcache里放了一些不容易变的数据
20楼:Jesin
这有啥好比的,用好才是关键
与内容无关的评论将被删除,严重者禁用帐号
本周热点资讯
本站最新资讯您的举报已经提交成功,我们将尽快处理,谢谢!
大家还关注
<a href="/b/.html" target="_blank" class="trackEventQuestion" trackType="PC_问题详细页" trackAction="跳转" trackDes="PC_大家还关注" title="用3角钱人民币兑换5分、2分、1分硬币,共20枚,有多少方案,请一一输出。 #include "stdafx.h"
#include"stdio.h"
void main()
int i,j,k;
scanf("%d",&i);
i+j+k==20;
5*i+2*j+k==30;
for(i=6;i<=6;i--)
for(j=15;j<=15;j--)
for(k=20;k用3角钱人民币兑换5分、2分、1分硬币,...

我要回帖

更多关于 设置密码永不过期 的文章

 

随机推荐