Heim >Backend-Entwicklung >PHP-Tutorial >Einige Möglichkeiten, Redis in PHP zu verwenden

Einige Möglichkeiten, Redis in PHP zu verwenden

小云云
小云云Original
2018-03-03 13:22:342255Durchsuche

Das Erlernen dieser Schlüsselkenntnisse wird unsere Fähigkeiten auf jeden Fall verbessern. Dieser Artikel teilt Ihnen hauptsächlich einige Methoden zur Verwendung von Redis in PHP mit und hofft, allen zu helfen.

①. Datentyp

  • Zunächst müssen wir es anhand der 7 von Redis bereitgestellten Datentypen verstehen: String, Hash, List, Set , Sortierter Satz, Pub/Sub, Transaktionen

② Verwandtes Wissen über einzelne Threads:

Einige Möglichkeiten, Redis in PHP zu verwenden

  • Wir denken im Allgemeinen, dass NoSQL-Datenbanken keine Transaktionen haben, ich fürchte, wir werden Sie enttäuschen. Redis unterstützt Transaktionen, aber es handelt sich nicht um Transaktionen im Sinne unseres allgemeinen Sinnes. Wenn Sie den Befehl exec ausführen und der Strom unterbrochen wird oder der Server unterwegs aufhängt, werden wir immer noch feststellen, dass ein Teil von Redis eingefügt ist und ein Teil nicht.

  • Redis bietet jedoch den WATCH-Befehl. Wir können einen bestimmten Schlüssel überwachen und dann Transaktionen ausführen. Wenn der Wert der Uhr geändert wird, werden die Transaktionen davon erfahren und die Ausführung verweigern.

Zu den häufig verwendeten Befehlen gehören MULTI, EXEC und DISCARD.

MULTI:标记一个事务块的开始;
EXEC:执行所有事务块内的命令;
DISCARD:取消事务,放弃执行事务块内的所有命令;
UNWATCH:取消 WATCH 命令对所有 key 的监视;
WATCH key:监视 key,如果在事务执行之前 key 被其他命令所改动,那么事务将被打断
  • Redis ist eine Datenbank und viele Entwickler können sie auch alleine verwenden. Tatsächlich wird Redis in den meisten Fällen als Middleware zwischen der Datenbank und dem Code verwendet. Wenn Sie feststellen, dass in Ihrer aktuellen Datenbank ein Engpass vorliegt, können Sie ihn über Redis optimieren

♬ Informationen zur Codeverwendung

  • finden Sie im Video - [php operation redis]

  • Persönlicher einfacher Code:

 $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)
  • Screenshot des Ausführungseffekts:

♬ Erweitert

① . Vergleich von vier NoSQL-Datenbanken:

②Nutzungsszenarien von rpoplpush

Verwandte Empfehlungen:

Wie wäre es mit der PHP-Freigabe von laufenden Redis-Instanzen?

Installieren von Redis-Erweiterungsinstanzen für PHP unter Windows

Erklärung von PHP mit Redis Instanzen

Das obige ist der detaillierte Inhalt vonEinige Möglichkeiten, Redis in PHP zu verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn