php操作predis扩展使用

论坛 期权论坛     
选择匿名的用户   2021-6-2 17:53   490   0
<p>//使用autoload加载相关库,这边重点就是为了require $file;<br> spl_autoload_register(function($class) {<!-- --><br>     $file &#61; __DIR__.&#39;/lib/Predis/&#39;.$class.&#39;.php&#39;;<br>     if (file_exists($file)) {<!-- --><br>         require $file;<br>         return true;<br>     }<br> });<br>  <br> //配置连接的IP、端口、以及相应的数据库<br> $server &#61; array(<br>     &#39;host&#39;     &#61;&gt; &#39;127.0.0.1&#39;,<br>     &#39;port&#39;     &#61;&gt; 6379,<br>     &#39;database&#39; &#61;&gt; 15<br> );<br> $redis &#61; new Client($server);<br>  <br> //普通set/get操作<br> $redis-&gt;set(&#39;library&#39;, &#39;predis&#39;);<br> $retval &#61; $redis-&gt;get(&#39;library&#39;);<br> echo $retval; //显示 &#39;predis&#39;<br>  <br> //setex set一个存储时效<br> $redis-&gt;setex(&#39;str&#39;, 10, &#39;bar&#39;); //表示存储有效期为10秒<br>  <br> //setnx/msetnx相当于add操作,不会覆盖已有值<br> $redis-&gt;setnx(&#39;foo&#39;,12); //true<br> $redis-&gt;setnx(&#39;foo&#39;,34); //false<br>  <br> //getset操作,set的变种,结果返回替换前的值<br> $redis-&gt;getset(&#39;foo&#39;,56);//返回34<br>  <br> // incrby/incr/decrby/decr 对值的递增和递减<br> $redis-&gt;incr(&#39;foo&#39;); //foo为57<br> $redis-&gt;incrby(&#39;foo&#39;,2); //foo为59<br>  <br> //exists检测是否存在某值<br> $redis-&gt;exists(&#39;foo&#39;);//true<br>  <br> //del 删除<br> $redis-&gt;del(&#39;foo&#39;);//true<br>  <br> //type 类型检测,字符串返回string,列表返回 list,set表返回set/zset,hash表返回hash<br> $redis-&gt;type(&#39;foo&#39;);//不存在,返回none<br> $redis-&gt;set(&#39;str&#39;,&#39;test&#39;);<br> $redis-&gt;type(&#39;str&#39;); //字符串,返回string<br>  <br> //append 连接到已存在字符串<br> $redis-&gt;append(&#39;str&#39;,&#39;_123&#39;); //返回累加后的字符串长度8,此进str为 &#39;test_123&#39;<br>  <br> //setrange 部分替换操作<br> $redis-&gt;setrange(&#39;str&#39;,0,&#39;abc&#39;); //返回3,参数2为0时等同于set操作<br> $redis-&gt;setrange(&#39;str&#39;,2,&#39;cd&#39;);//返回4,表示从第2个字符后替换,这时&#39;str&#39;为&#39;abcd&#39;<br>  <br> //substr 部分获取操作<br> $redis-&gt;substr(&#39;str&#39;,0,2);//表示从第0个起,取到第2个字符,共3个,返回&#39;abc&#39;<br>  <br> //strlen 获取字符串长度<br> $redis-&gt;strlen(&#39;str&#39;); //返回4<br>  <br> //setbit/getbit 位存储和获取<br> $redis-&gt;setbit(&#39;binary&#39;,31,1);  //表示在第31位存入1,这边可能会有大小端问题?不过没关系,getbit 应该不会有问题<br> $redis-&gt;getbit(&#39;binary&#39;,31);    //返回1<br>  <br> //keys 模糊查找功能,支持*号以及?号(匹配一个字符)<br> $redis-&gt;set(&#39;foo1&#39;,123);<br> $redis-&gt;set(&#39;foo2&#39;,456);<br> $redis-&gt;keys(&#39;foo*&#39;); //返回foo1和foo2的array<br> $redis-&gt;keys(&#39;f?o?&#39;);  //同上<br>  <br> //randomkey 随机返回一个key<br> $redis-&gt;randomkey(); //可能是返回 &#39;foo1&#39;或者是&#39;foo2&#39;及其它任何一存在redis的key<br>  <br> //rename/renamenx 对key进行改名,所不同的是renamenx不允许改成已存在的key<br> $redis-&gt;rename(&#39;str&#39;,&#39;str2&#39;); //把原先命名为&#39;str&#39;的key改成了&#39;str2&#39;<br>  <br> //expire 设置key-value的时效性,ttl 获取剩余有效期,persist 重新设置为永久存储<br> $redis-&gt;expire(&#39;foo&#39;, 1); //设置有效期为1秒<br> $redis-&gt;ttl(&#39;foo&#39;); //返回有效期值1s<br> $redis-&gt;expire(&#39;foo&#39;); //取消expire行为<br>  <br> //dbsize 返回redis当前数据库的记录总数<br> $redis-&gt;dbsize();<br>  <br> /*<br> 队列操作<br> */<br>  <br> //rpush/rpushx 有序列表操作,从队列后插入元素<br> //lpush/lpushx 和rpush/rpushx的区别是插入到队列的头部,同上,&#39;x&#39;含义是只对已存在的key进行操作<br> $redis-&gt;rpush(&#39;fooList&#39;, &#39;bar1&#39;); //返回一个列表的长度1<br> $redis-&gt;lpush(&#39;fooList&#39;, &#39;bar0&#39;); //返回一个列表的长度2<br> $redis-&gt;rpushx(&#39;fooList&#39;, &#39;bar2&#39;); //返回3,rpushx只对已存在的队列做添加,否则返回0<br> //llen返回当前列表长度<br> $redis-&gt;llen(&#39;fooList&#39;);//3<br>  <br> //lrange 返回队列中一个区间的元素<br> $redis-&gt;lrange(&#39;fooList&#39;,0,1); //返回数组包含第0个至第1个共2个元素<br> $redis-&gt;lrange(&#39;fooList&#39;,0,-1);//返回第0个至倒数第一个,相当于返回所有元素,注意redis中很多时候会用到负数,下同<br>  <br> //lindex 返回指定顺序位置的list元素<br> $redis-&gt;lindex(&#39;fooList&#39;,1); //返回&#39;bar1&#39;<br>  <br> //lset 修改队列中指定位置的value<br> $redis-&gt;lset(&#39;fooList&#39;,1,&#39;123&#39;);//修改位置1的元素,返回true<br>  <br> //lrem 删除队列中左起指定数量的字符<br> $redis-&gt;lrem(&#39;fooList&#39;,1,&#39;_&#39;); //删除队列中左起(右起使用-1)1个字符&#39;_&#39;(若有)<br>  <br> //lpop/rpop 类似栈结构地弹出(并删除)最左或最右的一个元素<br> $redis-&gt;lpop(&#39;fooList&#39;); //&#39;bar0&#39;<br> $redis-&gt;rpop(&#39;fooList&#39;); //&#39;bar2&#39;<br>  <br> //ltrim 队列修改,保留左边起若干
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP