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.
①. Data type
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:
③. Transactions Transactions
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
♬ For code usage
, 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:
♬ Extension
①. Comparison of four NoSQL databases:
②. Usage scenarios of rpoplpush
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!

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Notepad++7.3.1
Easy-to-use and free code editor

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
