>  기사  >  백엔드 개발  >  PHP에서 Redis를 사용하는 몇 가지 방법

PHP에서 Redis를 사용하는 몇 가지 방법

小云云
小云云원래의
2018-03-03 13:22:342216검색

Redis는 프로그램 개발자에게 큰 이점을 제공합니다. 이러한 핵심 지식을 배우면 우리의 능력이 확실히 향상될 것입니다. 이 기사에서는 모든 사람에게 도움이 되기를 바라며 주로 PHP에서 Redis를 사용하는 몇 가지 방법을 공유합니다.

①. 데이터 유형

  • 먼저 Redis에서 제공하는 7가지 데이터 유형(String, Hash, List, Set, Sorted Set, Publish 및 Subscribe)을 기반으로 이해해야 합니다. 트랜잭션 트랜잭션

②. 단일 스레드 관련 이해:

PHP에서 Redis를 사용하는 몇 가지 방법

③. Redis는 트랜잭션을 지원하지만 일반적인 의미의 트랜잭션은 아닙니다. exec 명령을 실행하고 전원이 차단되거나 서버가 도중에 중단되면 Redis의 일부는 삽입되고 일부는 삽입되지 않는 것을 알 수 있습니다.

  • 그러나 Redis는 WATCH 명령을 제공하여 특정 키를 관찰한 후 트랜잭션을 실행할 수 있습니다. Watch의 값이 수정되면 트랜잭션이 이를 발견하고 실행을 거부합니다.

  • 일반적으로 사용되는 명령에는 MULTI, EXEC 및 DISCARD가 있습니다.
MULTI:标记一个事务块的开始;
EXEC:执行所有事务块内的命令;
DISCARD:取消事务,放弃执行事务块内的所有命令;
UNWATCH:取消 WATCH 命令对所有 key 的监视;
WATCH key:监视 key,如果在事务执行之前 key 被其他命令所改动,那么事务将被打断

Redis는 데이터베이스로, 많은 개발자가 단독으로 사용할 수도 있습니다. 실제로 Redis는 데이터베이스와 코드 사이의 미들웨어로 사용되는 경우가 많습니다. 현재 데이터베이스에 병목 현상이 있는 경우 Redis를 통해 최적화할 수 있습니다
  • ♬ 코드 사용을 위해

동영상을 참고하세요——【php Operation redis】

  • 개인 심플코드:

  •  $redis = new \Redis(); $redis->pconnect('192.168.236.131', '6379'); #连接redis服务
     $redis->set('say','moTzxx say hello !');
     //echo $redis->get('say'); $redis->delete('myname'); $redis->set('myname','moTzxx'); echo $redis->get('myname').'<br>'; # 返回:moTzxx
    
     var_dump($redis->del('myname'));# 返回 TRUE(1)
     var_dump($redis->get('myname')); # 返回 bool(false)
    
     //$redis->set('tag',10); $redis->delete('tag'); $redis->incr('tag');
     //$redis->incrBy('tag',3);
     var_dump($redis->get('tag')); echo '<hr>'; $redis->delete('list1'); $redis->lPush('list1','hello'); $redis->rPush('list1','miss');
     var_dump($redis->rPop('list1')); #string(4) "miss"
     echo '<hr>'; $redis->delete('set1'); $redis->sAdd('set1','a'); $redis->sAdd('set1',2); $redis->sAdd('set1','ok'); $redis->sAdd('set1','ok');//TODO 集合的唯一性 $val = $redis->sCard('set1');
     var_dump($val); #int(3)
     $val2 = $redis->sMembers('set1');
     var_dump($val2);#array(3) { [0]=> string(2) "ok" [1]=> string(1) "2" [2]=> string(1) "a" }
     echo '<br>'; $redis->set('key1', 'value', 111);
     var_dump($redis->get('key1')); $redis->getSet('key1','value11');
     var_dump($redis->mget(['tag','key1']));
     var_dump($redis->type('tag')); echo '<hr>'; $redis->delete('driver1'); $redis->hSet("driver1",'name','moTzxx'); $redis->hSet("driver1",'age',12); $redis->hSet('driver1','gender',1); $val = $redis->hGet("driver1",'name');
     var_dump($val);#string(6) "moTzxx"
     $val = $redis->hMGet("driver1",['name','gender']);
     var_dump($val); #array(2) { ["name"]=> string(6) "moTzxx" ["gender"]=> string(1) "1" }
     echo '<hr>'; $redis->delete('pats'); $redis->zAdd('pats',1,'cat1');  # 构建一个zset (sorted set) // int(1)
     $redis->zAdd('pats',3,'dog3'); $redis->zAdd('pats',2,'monkey2'); $redis->zAdd('pats',2,'pig2'); $val = $redis->zRange('pats',0,-1); #从低到高
     var_dump($val); //array(4) { [0]=> string(4) "cat1" [1]=> string(7) "monkey2" [2]=> string(4) "pig2" [3]=> string(4) "dog3" } $val2 = $redis->zRevRange('pats',0,-1); #从高到低
     var_dump($val2);//array(4) { [0]=> string(4) "dog3" [1]=> string(4) "pig2" [2]=> string(7) "monkey2" [3]=> string(4) "cat1" }
     var_dump($redis->TYPE('pats')); //zset / int(4)

  • 실행 효과 스크린샷:

  • ♬ Extended

  • ① 비교. 네 NoSQL 데이터베이스:

②. rpoplpush의 사용 시나리오

관련 권장 사항:

PHP가 Redis 인스턴스 공유를 작동하는 방법

PHP 설치 Windows

Ex PHP를 사용한 계획 Redis 인스턴스

위 내용은 PHP에서 Redis를 사용하는 몇 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.