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