ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
~~~ Keys //del, delete, unlink - 删除指定的键 返回删除的键数 //unlink 用法同del一致 非阻塞的,并且将异步执行实际删除 v4.0.0++ $redis->delete('key1', 'key2'); // 2 $redis->delete(['key1', 'key2']); // 2 //dump(键) -序列化给定 key的值,并返回;使用 RESTORE 命令可以将这个值反序列化 //restore(key,ttl,dump序列化的值) - 反序列化给定的dump提供的序列化值,并将它和给定的key关联 $redis->set('foo', 'bar'); $val = $redis->dump('foo'); //返回序列化后的键值(在浏览器上乱码无关紧要) bar����( $res=$redis->restore('foo-bar', 0, $val); // foo-bar键的值与foo键的值相同都为bar $a=$redis->get('foo'); $b=$redis->get('foo-bar'); //exists(string or array) - 检查给定 key 是否存在 返回存在key的数量 版本<4.0.0则返回boolean $redis->exists('NonExistingKey'); //0 都不存在返回0 $redis->mset(['foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz']); $redis->exists(['foo', 'bar', 'baz']);//3 // $redis->exists('foo', 'bar', 'baz');//3 //expire, setTimeout, pexpire -设定指定key的生存时间(s) 返回boolean $redis->set('x', '42'); $redis->setTimeout('x', 3); // 设置x3秒的存活时间 sleep(5); // 休眠5秒 $redis->get('x'); // 返回false x已经过期了 //expireAt, pexpireAt - 设定指定key生存时间(只接受10位数的时间戳) $redis->expireAt('x', time()+3);//3秒的生存时间时间 $redis->expireAt('x', 1577811600);//2020/01/01 00:00:00过期 //keys, getKeys - 返回满足给定pattern的所有key ( 查看键的总数dbSize) $redis->keys('user'); $redis->keys('user*');//如user1... $redis->keys('*');//返回所有键 //scan - 迭代数据库的键 (Redis >= 2.8.0) 实际生产中使用这个避免使用keys阻塞数据库 $it=NULL; $count=1000;//不填第三个参数是返回所有匹配到的键 $match='active*';//匹配键 $arr_keys = $redis->scan($it,$match,$count); //与原生的redis scan有点区别 //仿原生: $it = null;//游标 $match = 'active*'; $count = 10; $index = 0; $redis->setOption(Redis::OPT_SCAN,Redis::SCAN_RETRY); $iterator = null; while ($keys = call_user_func_array(array($redis, 'scan'), array(&$it, $match,$count))) { echo $it. PHP_EOL.'<br>'; foreach ($keys as $key) { echo $key . PHP_EOL.'<br>'; } } //migrate(host,port,key/keys,targetDB(0~15),timeout,不移除源实例上的key(拷贝),替换目标实例上已存在的key) - 将key迁移到其他Redis实例 多个key迁移版本必须>=3.0.6 $redis->migrate('127.0.0.1', 6379, 'foo', 0, 3600); $redis->migrate('backup', 6379, 'foo', 0, 3600, true, true); // copy and replace $redis->migrate('backup', 6379, 'foo', 0, 3600, false, true); // just REPLACE flag /* 迁移多个keys (version >= 3.0.6) $redis->migrate('backup', 6379, ['key1', 'key2', 'key3'], 0, 3600); //move - 将key移动到其他数据库 $redis->select(0); // switch to DB 0 $redis->set('x', '42'); // write 42 to x $redis->move('x', 1); // move to DB 1 $redis->select(1); // switch to DB 1 $redis->get('x'); // will return 42 //object(指定返回内容,key) 返回指定key的Redis对象的内部结构 //REFCOUNT: 返回给定key引用所储存的值的次数。此命令主要用于除错 //ENCODING:返回给定key所储存的值所使用的内部编码方式 //字符串raw(一般字符串)或int (为了节约内存,Redis 会将字符串表示的 64 位有符号整数编码为整数来进行储存) //列表:ziplist(是为节约大小较小的列表空间而作的特殊表示)或linkedlist; //集合:intset(是只储存数字的小集合的特殊表示)或者hashtable; //哈希:zipmap(是小哈希表的特殊表示)或者hashtable; //有序集合:ziplist(用于表示小的有序集合)或者skiplist(用于表示任何大小的有序集合) //IDLETIME:返回给定 key 自储存以来的空闲时间(idle, 没有被读取也没有被写入),以秒为单位 //返回值: REFCOUNT 和 IDLETIME 返回数字;ENCODING 返回相应的编码类型;如果密钥不存在则为FALSE。 $b=$redis->object("refcount", "month_active"); // → 1 $a=$redis->object("encoding", "active31"); // → raw $c=$redis->object("idletime", "active31"); //→ 400 //persist(键) - 移除给定key的生存时间(key变成永不过时的key)返回boolean $redis->persist('key'); //randomKey - 从当前数据库中随机返回(不删除)一个 key $redis->randomKey();//随机返回当前数据库总的key //rename(旧键名,新键名), renameKey(旧键名,新键名) - 修改键名 返回boolean $redis->rename('x', 'y'); renameNx(旧键名,新键名) - 当修改的新键名不存在时才修改键名 //type(键名) - 返回指定key所储存的值的类型 $redis->type('key'); //sort(参数) - 对列表、有序集合和无序集合中的元素进行排序 /* 参数有: 'by' => 'some_pattern_*', 'limit' => [0, 1], 'get' => 'some_other_pattern_*' or an array of patterns, 'sort' => 'asc' or 'desc', 'alpha' => TRUE, 'store' => 'external-key' */ $redis->delete('s'); $redis->sAdd('s', 5); $redis->sAdd('s', 4); $redis->sAdd('s', 2); $redis->sAdd('s', 1); $redis->sAdd('s', 3); $redis->sort('s'); // 1,2,3,4,5 $redis->sort('s', ['sort' => 'desc']); // 5,4,3,2,1 $redis->sort('s', ['sort' => 'desc', 'store' => 'out']); // (int)5 //ttl(键), pttl(键) -返回指定键的剩余生存时间 ttl(返回秒) pttl(返回毫秒) $redis->ttl('key'); ~~~