캐시에 프로젝트에서 사용하는 경우, 우리는 레디 스 또는 Memcached가를 선택한 이유는 무엇입니까?

일부 시나리오의 경우 :

(A)는, 예컨대 단순한 로그 수집 기능을 달성하거나 메시지, 전자 메일 기능의 다수를 전송하도록 구현 먼저 데이터 큐에 수집하고, 정기적으로 작업 대기열 일을하는 과정을 소모.

lpush, rpop 또는 rpush, lpop의 직접 사용을 레디 스.

//进队列
$redis->lpush(key, value);

//出队列
$redis->rpop(key);

이러한 데이터 구조를 Memcached가 없다.

둘째, 우리는 사용자 정보를 저장 그러한 ID, 이름, 전화 번호, 연령, 신장,로 원하는, 어떻게 저장합니까?

프로그램 : 키 => 값

키 = user_data_ 사용자 ID

값 =로 json_encode (사용자 데이터)

쿼리는 먼저 키와 json_decode 해상도를 제거합니다.

옵션 2 : 해시

키 = user_data_ 사용자 ID

hashKey = 이름, 값 = XX

hashKey = 전화, 값 = XX

hashKey이 나이 값을 = = XX

hashKey = 높이 값 = XX

때 쿼리, 당신은 키를 제거 할 수 있습니다.

//新增
$redis->hSet(key, hashKey, value);
$redis->hSet(key, hashKey, value);
$redis->hSet(key, hashKey, value);

//编辑
$redis->hSet(key, hashKey, value);

//查询
$redis->hGetAll(key); //查询所有属性
$redis->hGet(key, hashKey); //查询某个属性

계획 I 제도 II는 우수합니다.

셋째, 같은시나 웨이 보, 팬 및 개인 주시 센터의 목록, 양방향 관심 목록에 같은 소셜 프로젝트뿐만 아니라, 인기있는 마이크로 블로깅으로뿐만 아니라, 뉴스 등 구독.

외 관련 데이터 구조는 레디 스를 제공하기 위해 사용된다.

네이되는 memcached는 전용 메모리에 저장되고, 레디 스 메모리에 저장 될 수있다, 당신은 또한 디스크에 지속 할 수 있습니다.

요구의 데이터 요구가 계속되면 레디 스를 선택하십시오.

개인 Memcached가이 작업에 사용되지 않는 데이터를 쿼리하여 때 Memcached가 레디 스 메모리 할당을 더 얻을.

소정의 크기에 따른 슬라브 할당 memcached를 기본 메모리 관리기구는, 할당 된 메모리는 완전히 메모리 단편화의 문제를 해결하기 위하여, 키 - 값 저장소 특정 데이터 레코드의 길이의 길이에 대응되는 블록들로 분할된다.

어떻게 데이터 일관성 및 캐시 데이터베이스를 보장하기 위해?

새로운 데이터 : 먼저 데이터베이스에 추가 한 다음 캐시에 추가.

데이터 편집 : 데이터베이스의 데이터를 수정, 캐시 된 데이터를 삭제 한 다음 캐시에 추가.

데이터 삭제 : 데이터베이스 캐시 데이터, 삭제 된 데이터를 삭제합니다.

쿼리 데이터 : 첫 번째 데이터 쿼리 캐시는, 아니, 다음 데이터베이스를 조회 한 다음 캐시에 추가 할 수 있습니다.

강력한 일관성은 같은 시간에 트랜잭션 일관성, 일관성 지점, 최종 일관성으로, 보장하기 어렵다.

추천

출처www.cnblogs.com/flzs/p/12205733.html