redis学习笔记之键操作

作用:键操作常用来管理管理 redis 的键

  • 键的删除

syn:$redis->del(k1,k2)

return:成功返回删除键的数量,失败返回0 

$redis->set('name','rcj');
$redis->set('name1','rcj2');
echo $redis->del('name','name1');//2
  • 检测键是否存在

syn$redis->exists()

return存在返回 1 ,否则返回 0 

$redis->set('name','test');
echo $redis->exists('name')//1
  • 键的过期时间
    1. 设置过期时间 

syn$redis->expire(key,secd)

return:成功返回1,不存在key或者不能设置返回0   

$redis->set('name','test');
echo $redis->expire('name',60)//1

还有expireat(key,时间戳),pexpire(key,secd*1000),pexpireat(key,时间戳(毫秒))

perstst(key)移除给定key的过期剩余时间,使之永不失效

    1. 获取剩余时间

syn$redis->ttl(key)

return:永久数据返回 -1 找不到值返回 -2 有设定过期时间返回剩下的时限(秒为单位)

$redis->EXPIRE('name',60);
echo $redis->ttl('name');//60
$redis->PERSIST('name');
echo $redis->ttl('name');//-1

pttl(key)类似ttl,不过pttl返回的是毫秒为单位的  

  • 键的查找

syn$redis->keys(表达式)

return:返回查找到的所有符合条件的keyname,array()

for ($i=0; $i < 5; $i++) { 
	$redis->set('name'.$i,'test'.$i);
}
print_r($redis->keys('*'));
print_r($redis->keys('name*'));
  • 键的移动

syn$redis->move(key,目标库)

return:成功返回1,失败返回0

分几种情况

 1.移动一个只存在于当前数据库的key,成功,返回1

 2.移动一个不存在于当前数据库的key,失败,返回0

 3.当源数据库和目标数据库有相同的 key 时,移动操作失败返回0并且各数据库中key对应的value不变

$redis = new redis();
$redis->connect('127.0.0.1',6379);

//移动一个存在于当前数据库的key
/*echo $redis->select(0);//1
$redis->set('song','test');
$redis->move('song',1);
echo '~~~~';
echo $redis->EXISTS('song');//运行第一次返回空,页面再刷新一次返回1
echo '~~~~';
echo $redis->select(1);//1
echo $redis->EXISTS('song');//1
*/

//移动一个不存在于当前数据库的key
/*echo $redis->select(1).'!';
echo $redis->EXISTS('song1').'!';
echo $redis->move('song1',0).'!';
echo $redis->select(0).'!';
echo $redis->EXISTS('song1');//第一次运行1!!!1!,第二次 1!!!1!
*/

//当源数据库和目标数据库有相同的 key 时
/*结论:
当0数据库有key,并且值为ooo,当1数据库也有key,值为111的时候,吧0数据库的key移动到1是移动失败的,并且双方的key值都不变
*/
  • 获取键

randomkey()返回随机key

  • 修改键名

syn:$redis->rename(oldkey,newkey)

return:

  1.oldkey存在,newkey不存在时返回ok

  2.oldkey不存在,newkey不存在时返回(error) ERR no such key

  3.oldkey存在,newkey存在时,newkey的值将被覆盖为oldkey的值

  类似的函数还有renamenx(oldkey,newkey),该函数是仅当newkey不存在时修改成功,返回1

  • 返回键储存值类型

    $redis->type(key)

var_dump($redis->type('fake_key')); //none /int(0)
$redis->set('weather',"sunny");  # 构建一个字符串
var_dump($redis->type('weather'));//string / int(1)
$redis->sadd('pat',"dog");  # 构建一个集合
var_dump($redis->type('pat')); //set /int(2)

文章的所有资源来源网络:

http://www.yiibai.com/redis/

http://www.jb51.net/article/56448.htm

http://www.runoob.com/redis/redis-keys.html

http://www.cnblogs.com/weafer/archive/2011/09/21/2184059.html

posted @ 2016-03-16 14:50  rcj_飞翔  阅读(126)  评论(0)    收藏  举报