redis-key(键)的操作
以下所有命令默认在已连接上redis服务,php命令中 $redis 为实例化的redis对象;
1.set key value
设置key(将字符串值value关联到key),默认生命周期为永久,如果key已经被设置,key所关联的字符串值将被覆盖,无视key的类型;
linux命令:
127.0.0.1:6379> set name hello
OK
php命令:
$redis->set('sex','man');
2.get key
返回key所关联的字符串值,如果key不存在则返回特殊值nil,如果key存储的值不是字符串类型,返回一个错误,因为get只能用于处理字符串值。
linux命令:
127.0.0.1:6379> get name
"hello"
php命令:
echo $redis->get('name');
3.exists key
检查给定key是否存在,存在返回1,否则返回0
linux命令:
127.0.0.1:6379> exists name
(integer) 1
php命令:
echo $redis->exists('name');
4.type key
返回key所储存的值的类型,php命令返回值(返回的为整数):
none(key不存在) int(0);
string(字符串) int(1);
list(列表) int(3);
set(集合) int(2);
zset(有序集) int(4);
hash(哈希表) int(5);
linux命令:
127.0.0.1:6379> type name
string
php命令:
echo $redis->type('name');
5.keys pattren
查找符合模式的key,返回符合给定模式的key列表,基本用法举例说明:
name 就是命中 name;
* 命中当前数据库中所以有的key;
*name 命中以name结尾的key;
name*命中以name开头的key;
n*ame 命中以n开头ame结尾的key;
n?ame 命中以n开头,后面接一个字符,再以ame结尾的key;
其实还有很多,实际上keys可以按照正则规则来获取key列表的;
linux命令:
127.0.0.1:6379> keys *
1) "abc"
2) "sex"
3) "name"
php命令:
$keys = $redis->keys('*');
dump($keys);
6.del key [key...]
移除给定的一个或多个key,linux命令以空格分隔,可以一次移除多个key,php命令还可以使用数组移除多个key,返回被移除key的数量
linux命令:
127.0.0.1:6379> del abc
(integer) 1
127.0.0.1:6379> del sex name
(integer) 2
php命令:
echo $redis->del('name');
echo $redis->del('abc','sex');
echo $redis->del(array('abc','sex'));
7.dbsize
返回当前数据库的 key 的数量
linux命令:
127.0.0.1:6379> dbsize
(integer) 2
php命令:
echo $redis->dbSize();
8.rename key newkey
将key改名为newkey,当key和newkey相同或者key不存在时,返回一个错误;当newkey已经存在时,将覆盖原来的值,无视类型
linux命令:
127.0.0.1:6379> rename list name
OK
php命令:
$redis->rename('list','name');
9.renamenx key newkey (nx有not exit的意思)
当且仅当 newkey 不存在时,将 key 改名为 newkey,修改成功时,返回 1 。如果 newkey 已经存在,返回 0 。
linux命令:
127.0.0.1:6379> renamenx sex aaa
(integer) 1
php命令:
$redis->renameNx('sex ','aaa');
10.expire key seconds
为给定key设置生存时间,当key过期时,它会被自动删除,单位为秒;设置成功返回1,其他返回0。
linux命令:
127.0.0.1:6379> expire name 60
(integer) 1
php命令:
$redis->expire('name',60);
11.ttl key
返回给定key的剩余生存时间(以秒为单位),当 key 不存在时,返回 -2 ;当 key 存在但没有设置剩余生存时间时,返回 -1;
linux命令:
127.0.0.1:6379> ttl name
(integer) 57
php命令:
echo $redis->ttl('name');
12.pexpire key milliseconds
返回给定key的剩余生存时间(以毫秒为单位),设置成功,返回 1;key 不存在或设置失败,返回 0;1秒(s)=1000毫秒(ms)。
linux命令:
127.0.0.1:6379> pexpire name 60000
(integer) 1
php命令:
$redis->pExpire('name',60000);
13.pttl key
返回给定key的剩余生存时间(以毫秒为单位),当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。
linux命令:
127.0.0.1:6379> pttl name
(integer) 50307
php命令:
echo $redis->pttl('name');
14.persist key
移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key ),当生存时间移除成功时,返回 1 .如果 key 不存在或 key 没有设置生存时间,返回 0 。
linux命令:
127.0.0.1:6379> persist aaa
(integer) 1
php命令:
$redis->persist('a');
15.randomkey
从当前数据库中随机返回(不删除)一个 key ,当数据库不为空时,返回一个 key 。当数据库为空时,返回 nil 。
linux命令:
127.0.0.1:6379> randomkey
"aaa"
php命令:
echo $redis->randomKey();