PHP-Redis扩展使用手册(二)

  1 /* 根据多个key获取多个value,不存在的key返回false    getMultiple是别名?
  2      * @param array 包含key的数组
  3      * @return array 返回key对应value的数组
  4      */
  5     $redis->set(‘key1‘, ‘value1‘);
  6     $redis->set(‘key2‘, ‘value2‘);
  7     $redis->set(‘key3‘, ‘value3‘);
  8     $redis->mGet(array(‘key1‘, ‘key2‘, ‘key3‘)); // array(‘value1‘, ‘value2‘, ‘value3‘)
  9     $redis->mGet(array(‘key0‘, ‘key1‘, ‘key5‘)); // array(`FALSE`, ‘value2‘, `FALSE`);
 10
 11     /* 设置key的value,并返回旧的value
 12      * @param key
 13      * @return string value 旧的value
 14      */
 15     $redis->set(‘x‘, ‘42‘);
 16     $exValue = $redis->getSet(‘x‘, ‘lol‘);  // return ‘42‘, replaces x by ‘lol‘
 17     $newValue = $redis->get(‘x‘);              // return ‘lol‘
 18
 19     /* 返回一个随机的key
 20      * @return string key
 21      */
 22     $key = $redis->randomKey();
 23     $surprise = $redis->get($key);  // who knows what‘s in there.
 24
 25     /* 将一个key移到不同的数据库中
 26      * @param key 要移动的key
 27      * @param int 数据库索引
 28      * @return bool 成功返回true,失败返回false
 29      */
 30     $redis->select(0);      // switch to DB 0
 31     $redis->set(‘x‘, ‘42‘); // write 42 to x
 32     $redis->move(‘x‘, 1);   // move to DB 1
 33     $redis->select(1);      // switch to DB 1
 34     $redis->get(‘x‘);       // will return 42
 35
 36     /* 重新命名一个key    别名:renameKey
 37      * @param string srckey 旧key名称
 38      * @param string dstkey 新key名称
 39      * @return bool 成功返回true,失败返回false
 40      */
 41     $redis->set(‘x‘, ‘42‘);
 42     $redis->rename(‘x‘, ‘y‘);
 43     $redis->get(‘y‘);   // → 42
 44     $redis->get(‘x‘);   // → `FALSE`
 45
 46     /* 重新命名一个key,如果新key已存在,则不替换
 47      * @param string srckey 旧key名称
 48      * @param string dstkey 新key名称
 49      * @return bool 成功返回true,失败返回false
 50      */
 51     $redis->set(‘x‘, ‘42‘);
 52     $redis->set(‘y‘, ‘43‘);
 53     $redis->renameNx(‘x‘, ‘y‘);    //替换失败,y已存在,返回false
 54
 55     /* 设置生存时间,别名:setTimeout, pexpire
 56      * @param key
 57      * @param int ttl 单位是秒
 58      * @return bool 成功返回true,失败返回false
 59      */
 60     $redis->set(‘x‘, ‘42‘);
 61     $redis->setTimeout(‘x‘, 3);     // x will disappear in 3 seconds.
 62     sleep(5);                       // wait 5 seconds
 63     $redis->get(‘x‘);               // will return `FALSE`, as ‘x‘ has expired.
 64
 65     /* 设置生存时间,别名:pexpireAt
 66      * @param string key
 67      * @param int timestamp 时间戳,超过该时间key戳无效
 68      * @return bool 成功返回true,失败返回false
 69      */
 70     $redis->set(‘x‘, ‘42‘);
 71     $now = time(NULL); // current timestamp
 72     $redis->expireAt(‘x‘, $now + 3);    // x will disappear in 3 seconds.
 73     sleep(5);               // wait 5 seconds
 74     $redis->get(‘x‘);       // will return `FALSE`, as ‘x‘ has expired.
 75
 76     /* 返回和模式匹配成功的所有key 别名:getKeys
 77      * @param string 模式
 78      * @return array/string 单个值或数组
 79      */
 80     $allKeys = $redis->keys(‘*‘);   // all keys will match this.
 81     $keyWithUserPrefix = $redis->keys(‘user*‘);
 82
 83     /* 充key空间中搜索key
 84      * 不是很懂$it的作用
 85      */
 86     $it = NULL; /* Initialize our iterator to NULL */
 87     $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY); /* retry when we get no keys back */
 88     while($arr_keys = $redis->scan($it)) {
 89         foreach($arr_keys as $str_key) {
 90             echo "Here is a key: $str_key\n";
 91         }
 92         echo "No more keys to scan!\n";
 93     }
 94
 95     /* 根据参数,查看相应key的信息
 96      * @param string “encoding”返回给定 key 锁储存的值所使用的内部表示(representation);“refcount”返回给定 key 引用所储存的值的次数(此命令主要用于除错);“idletime”返回给定 key 自储存以来的空闲时间(idle, 没有被读取也没有被写入),以秒为单位
 97      * @return “encoding”返回string,“refcount、idletime”返回long
 98      */
 99     $redis->object("encoding", "l"); // → ziplist
100     $redis->object("refcount", "l"); // → 1
101     $redis->object("idletime", "l"); // → 400 (in seconds, with a precision of 10 seconds)
102
103     /* 返回key指向的value的类型
104      * @param key key
105      * @return string: Redis::REDIS_STRING(1)、set: Redis::REDIS_SET(2)、list: Redis::REDIS_LIST(3)、zset: Redis::REDIS_ZSET(4)、hash: Redis::REDIS_HASH(5)、other: Redis::REDIS_NOT_FOUND(0)
106      */
107
108     $redis->sadd(‘key_1‘,‘value_1‘);
109     $redis->sadd(‘key_1‘,‘value_2‘);
110     echo $redis->type(‘key_1‘);        // echo 2
111
112     /* 追加字符串到指定key的value中去
113      * @param key
114      * @param value
115      * @return int 追加之后的value长度
116      */
117     $redis->set(‘key‘, ‘value1‘);
118     $redis->append(‘key‘, ‘value2‘); /* 12 */
119     $redis->get(‘key‘); /* ‘value1value2‘ */
120
121     /* 获取key指向value的子字符串
122      * @param key
123      * @param int start 开始下标
124      * @param int end 结束下标
125      * @return string 子字符串
126      */
127     $redis->set(‘key‘, ‘string value‘);
128     $redis->getRange(‘key‘, 0, 5); /* ‘string‘ */
129     $redis->getRange(‘key‘, -5, -1); /* ‘value‘ */
130
131     /* 改变key指向value的子字符串
132      * @param key
133      * @param offset 偏移量
134      * @param value 值
135      * @return int 返回修改后字符串的长度
136      */
137     $redis->set(‘key‘, ‘Hello world‘);
138     $redis->setRange(‘key‘, 6, "redis"); /* returns 11 */
139     $redis->get(‘key‘); /* "Hello redis" */
140
141     /* 返回value的长度
142      * @param key
143      * @return int 返回字符串长度
144      */
145     $redis->set(‘key‘, ‘value‘);
146     $redis->strlen(‘key‘); /* 5 */
147
148     /* 从key指向的value中获取指定位置的bit值
149      * @param key
150      * @param offset 偏移量
151      * @return long 0/1
152      */
153     $redis->set(‘key‘, "\x7f"); // this is 0111 1111
154     $redis->getBit(‘key‘, 0); /* 0 */
155     $redis->getBit(‘key‘, 1); /* 1 */
156
157     /* 改变字符串指向value的指定位置的bit
158      * @param key
159      * @param offset 偏移量
160      * @param int value 0/1
161      * @return long 0/1 返回改变之前该位置的bit
162      */
163     $redis->set(‘key‘, "*");    // ord("*") = 42 = 0x2f = "0010 1010"
164     $redis->setBit(‘key‘, 5, 1); /* returns 0 */
165     $redis->setBit(‘key‘, 7, 1); /* returns 0 */
166     $redis->get(‘key‘); /* chr(0x2f) = "/" = b("0010 1111") */
167
168     /* 根据对应的操作对多个位进行运算
169      * @param operation “AND”、“OR”、“NOT”、“XOR”
170      * @param ret_key 返回结果
171      * @param key1
172      * @param key2
173      * @param ...
174      * @return long 返回结果key的长度
175      */
176     $key1 = ‘0‘;
177     $redis->setbit($key1,1,1);
178     $redis->expire($key1,1000);
179
180     $key2 = ‘1‘;
181     $redis->setbit($key2,2,1);
182     $redis->expire($key2,1000);
183
184     $redis->bitop(‘OR‘,‘t_key‘,$key1,$key2);
185     $redis->get(‘t_key‘);    //echo $key1 OR $key2
186
187
188     /* 统计字符串bit的数量
189      * @param key
190      * @return long value 返回
191      */
192     $redis->set(‘key2‘,‘2‘);
193     $redis->bitcount(‘key2‘);    //echo 3 ‘2‘的ascii为51,二进制位110100,3个11
194     $redis->set(‘key1‘,‘3‘);
195     $redis->bitcount(‘key1‘);    //echo 4 ‘3‘的ascii为51,二进制位110011,4个11
196
197     /* 根据给的参数,进行排序
198      * @param array
199      *    ‘by‘ => ‘some_pattern_*‘,                通过该字段排序,user_level_* 是一个占位符, 它先取出 uid 中的值, 然后再用这个值来查找相应的键
200      *    ‘limit‘ => array(offset, count),        分页
201      *    ‘get‘ => ‘some_other_pattern_*‘ or an array of patterns,     连接更多的key-valuve
202      *    ‘sort‘ => ‘asc‘ or ‘desc‘,                降序或者升序
203      *    ‘alpha‘ => TRUE,                        sort默认排序对象为数字,当需要对字符串进行排序时将改参数设置为true
204      *    ‘store‘ => ‘external-key‘                将排序结果保存到该key上
205      * @return value 返回一个数组
206      */
207     $redis->LPUSH(‘user_id‘, 1);//(integer) 1
208     $redis->SET(‘user_name_1‘, ‘admin‘);
209     $redis->SET(‘user_level_1‘,9999);
210
211     $redis->LPUSH(‘user_id‘, 2);//(integer) 2
212     $redis->SET(‘user_name_2‘, ‘huangz‘);
213     $redis->SET(‘user_level_2‘, 10);
214
215     $redis->LPUSH(‘user_id‘, 59230);//(integer) 3
216     $redis->SET(‘user_name_59230‘,‘jack‘);
217     $redis->SET(‘user_level_59230‘, 3);
218
219     $redis->LPUSH(‘user_id‘, 222);  //(integer) 4
220     $redis->SET(‘user_name_222‘, ‘hacker‘);
221     $redis->SET(‘user_level_222‘, 9999);
222
223     $redis->SET(‘user_password_222‘, "hey,im in");
224     $redis->SET(‘user_password_1‘, "a_long_long_password");
225     $redis->SET(‘user_password_2‘, "nobodyknows");
226     $redis->SET(‘user_password_59230‘, "jack201022");
227
228     print_r($redis->sort(‘user_id‘));    //Array ( [0] => 1 [1] => 2 [2] => 222 [3] => 59230 )
229
230     $redis->sort(‘user_id‘,array(‘store‘=>‘store_key‘));
231     print_r($redis->LRANGE(‘store_key‘,0,4));    //Array ( [0] => 1 [1] => 2 [2] => 222 [3] => 59230 )
232
233     print_r($redis->SORT(‘user_id‘,array(‘BY‘=>‘user_level_*‘, ‘SORT‘=>‘DESC‘ ))); //Array ( [0] => 222 [1] => 1 [2] => 2 [3] => 59230 )
234
235     print_r($redis->sort(‘user_id‘,array(‘limit‘=>array(1,2))));    //Array ( [0] => 2 [1] => 222 )
236
237     print_r($redis->SORT(‘user_id‘,array( ‘BY‘=>‘user_id*‘, ‘SORT‘=>‘asc‘, ‘GET‘=>array(‘user_name_*‘,‘user_password_*‘) )));//Array ( [0] => admin [1] => a_long_long_password [2] => huangz [3] => nobodyknows [4] => hacker [5] => hey,im in [6] => jack [7] => jack201022 )
238
239     /* 返回给的的key的生存时间
240      * @param key
241      * @return long 返回时间,单位为秒
242      */
243     $redis->set(‘key_1‘,‘value_1‘);
244     $redis->expire(‘key_1‘,100);
245     $redis->ttl(‘key_1‘);    //100
246
247     /* 返回给的的key的生存时间
248      * @param key
249      * @return long 返回时间,单位为毫秒
250      */
251     $redis->set(‘key_1‘,‘value_1‘);
252     $redis->pexpire(‘key_1‘,100);
253     $redis->pttl(‘key_1‘);    //100
254
255     /* 移除有效时间ttl
256      * @param key
257      * @return bool 成功返回true,失败返回false
258      */
259     $redis->set(‘key_1‘,‘value_1‘);
260     $redis->pexpire(‘key_1‘,100);
261     $redis->pttl(‘key_1‘);    //100
262     $redis->persist(‘key_1‘);
263     $redis->pttl(‘key_1‘);    //-1
264
265     /* 插入多个键值对key-value
266      * @param array key-value
267      * @return bool 成功返回true,失败返回false
268      */
269     $redis->mset(array(‘key0‘ => ‘value0‘, ‘key1‘ => ‘value1‘));
270     $redis->get(‘key0‘);    //value0
271     $redis->get(‘key1‘);    //value1
272
273     /* 插入多个键值对key-value,如果key存在则不插入
274      * @param array key-value
275      * @return bool 成功返回true,失败返回false
276      */
277     $redis->mset(array(‘key0‘ => ‘value0‘, ‘key2‘ => ‘value2‘));    //如果有key存在,则直接返回false不操作
278     $redis->get(‘key0‘);    //value0
279     $redis->get(‘key2‘);    //value2
时间: 2024-10-14 16:10:40

PHP-Redis扩展使用手册(二)的相关文章

在Windows32下为PHP5.6安装redis扩展和memcached扩展

一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.6-ts-vc11-x86.zip和php_igbinary-1.2.1-5.5-ts-vc11-x86.zip 下载地址: http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/ http://windows.php.net/download

在Windows下为PHP5.6安装redis扩展和memcached扩展

一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.6-ts-vc11-x64.zip和php_igbinary-1.2.1-5.5-ts-vc11-x64.zip 下载地址: http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/ http://windows.php.net/download

安装redis和php的redis扩展

一.安装Redis 在服务器上下载好最新的redis解压包后,解压 #tar -zxvf redis-3.2.0-tar-gz #cd redis-3.2.0-tar-gz #make (redis-3.2.0-tar-gz是二进制包,所以不需要./configure命令.) #cd src #make install 之后我们需要将redis的文件复制到/usr/local/redis目录下 # mkdir -p /usr/local/redis/bin# mkdir -p /usr/loca

windows下安装php5.5的redis扩展

windows下开发用的xampp集成的环境,想装个php-redis扩展,扩展的github地址:  https://github.com/nicolasff/phpredis php_redis.dll下载地址:http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/ 看下自己phpinfo的信息 就选择   ts-x86 的包下载,将下载解压后的 php_igbinary.dll和php_redis.dll放入php的ext目录下然后

linux下php5.4安装redis扩展

一.redis简介redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追

window下的php安装redis扩展

本实验建立在redis服务器已经安装成功的条件下.安装redis扩展需要以下步骤: 1.打开php.ini文件,并找到该段代码:extension=php_redis.dll,并去掉前面的#好,如果没有找到则直接添加该段代码:extension=php_redis.dll 2.网上下载php_redis.dll文件,并放到php的ext扩展目录下.(步骤二要啰嗦一下.下载的版本一定要对应你的php版本,和compiler的vc版本,如果版本不对应,那将于事无补,切记,切记,版本要对应) 测试安装

linux 下安装redis以及php Redis扩展

1 [php] view plaincopy在CODE上查看代码片派生到我的代码片 2 linux 下安装redis以及php Redis扩展 3 4 环境配置: centos6.0 nginx/1.0.0 php/5.3.8 mysql/5.5.17 5 6 步骤一.下载redis 7 可以去http://redis.io/去下载最新版本 8 我用的是 redis 2.8.11 9 进入软件安装包存放目录: cd /var/install/software/ 10 wget http://do

linux php redis扩展的安装和redis服务的安装

一.php redis扩展的安装 wget http://pecl.php.net/get/redis-2.2.7.tgztar zvxf redis-2.2.7.tgzcd redis-2.2.7/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configredis.so 二.php redis服务器的安装 wget http://download.redis.io/releases/r

linux系统安装redis服务器与php redis扩展

一 安装redis服务 1更新yum源 CentOS/RHEL 7.x: rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 如果是centos6,那么执行以下代码: CentOS/RHEL 6.x: rpm -Uvh https://dl.fedorapro

Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建

[TOC] Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建 Redis Java API使用(一):单机版本Redis API使用 Redis的Java API通过Jedis来进行操作,因此首先需要Jedis的第三方库,因为使用的是Maven工程,所以先给出Jedis的依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactI