Redis has great advantages for program developers. Learning these key knowledges will definitely improve our abilities. This article mainly shares with you some methods of using Redis in PHP, hoping to help everyone.
First we need to understand it based on the 7 data types provided by Redis, namely String, Hash, List, Set, Sorted Set, Pub/Sub, and Transactions
②. Related understanding of single thread:
We generally think that NoSQL databases do not have transactions, I am afraid we will disappoint you. Redis supports transactions, but they are not transactions in our general sense. If you execute the exec command and the power is cut off or the server hangs up on the way, we will still find that part of it is inserted in Redis and part of it is not.
However, Redis provides the WATCH command. We can watch a certain key and then execute Transactions. If the value of the Watch is modified, the Transactions will find out and refuse to execute.
Commonly used commands include MULTI, EXEC, and DISCARD.
MULTI:标记一个事务块的开始; EXEC:执行所有事务块内的命令; DISCARD:取消事务,放弃执行事务块内的所有命令; UNWATCH:取消 WATCH 命令对所有 key 的监视; WATCH key:监视 key,如果在事务执行之前 key 被其他命令所改动,那么事务将被打断
Redis As a database, many developers can also use it alone. In fact, more often than not, Redis is used as a middleware between the database and the code. If you find that there is a bottleneck in your current database, then you can optimize it through Redis
, you can refer to the video - [php operation redis]
Personal simple 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)
Execution effect screenshot:
How to operate Redis with PHP Example sharing
PHP installation redis extension example under Windows
PHP using Redis example explanation
The above is the detailed content of Some ways to use Redis in PHP. For more information, please follow other related articles on the PHP Chinese website!