> 백엔드 개발 > PHP 튜토리얼 > redis需要设置过期时间吗

redis需要设置过期时间吗

WBOY
풀어 주다: 2016-06-06 20:43:22
원래의
1897명이 탐색했습니다.

memcached一般都设置expire过期了自动删除,然后

<code class="lang-php">$arr = $mem->get($key);
if(empty($arr)){
$sql = "select ....";
$arr = $pdo->fetch();
$mem->set($key,$arr,10*60);
}
</code>
로그인 후 복사
로그인 후 복사

redis的PHP API只有一个setex设置过期时间,其他的list,zset都没看到,如果没有的话是不设置的缓存一直存在,内存一直在增加?如果缓存有更新的话怎么维护呢?
其实我想问的是redis的更新策略,zset的数据一直在内存中,如果数据有更新怎么维护呢?如果像memcache有失效期好了,但为什么它没有设计呢?

回复内容:

memcached一般都设置expire过期了自动删除,然后

<code class="lang-php">$arr = $mem->get($key);
if(empty($arr)){
$sql = "select ....";
$arr = $pdo->fetch();
$mem->set($key,$arr,10*60);
}
</code>
로그인 후 복사
로그인 후 복사

redis的PHP API只有一个setex设置过期时间,其他的list,zset都没看到,如果没有的话是不设置的缓存一直存在,内存一直在增加?如果缓存有更新的话怎么维护呢?
其实我想问的是redis的更新策略,zset的数据一直在内存中,如果数据有更新怎么维护呢?如果像memcache有失效期好了,但为什么它没有设计呢?

对于一般的key用EXPIRE命令。http://redis.io/commands/expire

不设置ttl当然会一直存在。set更新会覆盖原值。

list,zset 也是可以设置过期时间的,都是使用 EXPIRE 命令

一般是根据需求来进行设置

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿