Maison > Article > développement back-end > Quelques façons d'utiliser Redis en PHP
Redis présente de grands avantages pour les développeurs de programmes. L'apprentissage de ces connaissances clés améliorera certainement nos capacités. Cet article partage principalement avec vous quelques méthodes d'utilisation de Redis en PHP, dans l'espoir d'aider tout le monde.
Tout d'abord, nous devons le comprendre en fonction des 7 types de données fournis par Redis, qui sont String, Hash, List, Set , Ensemble trié, Pub/Sub, Transactions
② Connaissance associée d'un seul thread :
Nous pensons généralement que les bases de données NoSQL n'ont pas de transactions, j'ai peur que nous vous décevions. Redis prend en charge les transactions, mais ce ne sont pas des transactions au sens général du terme. Si vous exécutez la commande exec et que l'alimentation est coupée ou que le serveur raccroche en cours de route, nous constaterons toujours qu'une partie de Redis est insérée et une partie ne l'est pas.
Cependant, Redis fournit la commande WATCH Nous pouvons surveiller une certaine clé puis exécuter des transactions. Si la valeur de la Montre est modifiée, les Transactions la retrouveront et refuseront de l'exécuter.
Les commandes couramment utilisées incluent MULTI, EXEC et DISCARD.
MULTI:标记一个事务块的开始; EXEC:执行所有事务块内的命令; DISCARD:取消事务,放弃执行事务块内的所有命令; UNWATCH:取消 WATCH 命令对所有 key 的监视; WATCH key:监视 key,如果在事务执行之前 key 被其他命令所改动,那么事务将被打断
Redis en tant que base de données, de nombreux développeurs peuvent également l'utiliser seul. En fait, le plus souvent, Redis est utilisé comme middleware entre la base de données et le code. Si vous constatez qu'il y a un goulot d'étranglement dans votre base de données actuelle, vous pouvez l'optimiser via Redis
vous pouvez vous référer à la vidéo - [php opération redis]
Code simple personnel :
$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)
Capture d'écran de l'effet d'exécution :
Recommandations associées :
<.>Que diriez-vous du partage PHP des instances Redis opérationnelles
Installation des instances d'extension Redis pour PHP sous Windows
Explication de PHP à l'aide de Redis instances
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!