php redis删除所有key,PHP 对 Redis key 值的操作

1、DEL

$redis = new redis();

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

// The first case 删除单独的 key

$redis->set('w3ckey','redis');

var_dump($redis->get('w3ckey')); // 返回 redis

$redis ->del('w3ckey'); // 删除该key,若需要获取返回值,则返回值为 int(1)

var_dump($redis->get('w3ckey')); // 返回 boolean(false)

// The second case 删除一个不存在的 key

if(!$redis->exists('fake_key'))

{

var_dump($redis->del('fake_key')); // 返回 int();

}

// The third case 同时删除多个 key

$array_mset = array(

'key1' => 'val1',

'key2' => 'val2',

'key3' => 'val3',

);

$redis->mset($array_mset); // 使用 mset 同时存储多个值

$array_mget = array('key1', 'key2', 'key3');

var_dump($redis->mget($array_mget)); // 返回 array (size=3)0 => string 'val1' (length=4) 1 => string 'val2' (length=4) 2 => string 'val3' (length=4)

$redis -> del($array_mget); // 同时删除多个值

var_dump($redis->mget($array_mget)); // 返回 array (size=3) 0 => boolean false 1 => boolean false 2 => boolean false

2、EXISTS

$redis = new redis();

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

$redis->set('w3ckey','redis');

var_dump($redis->exists('w3ckey')); // boolean true

$redis ->del('w3ckey');

var_dump($redis->exists('w3ckey')); // boolean(false)

3、EXPIRE

$redis = new redis();

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

$redis->set('w3ckey','redis');

$redis->expire('w3ckey',20); // 设置 w3ckey 的剩余生存时间为 20s

sleep(2);

var_dump($redis->TTL('w3ckey')); // 查看给定 key 的剩余生存时间,int 18

$redis->expire('w3ckey',30); // 更新 w3ckey 的剩余生存时间为 30s

sleep(3);

var_dump($redis->TTL('w3ckey')); // int 27

4、EXPIREAT

$redis = new redis();

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

$redis->set('w3ckey','redis');

$redis->expireAt('w3ckey',time()+10); // 设置 w3ckey 的剩余生存时间为 10s 后过期

sleep(3);

var_dump($redis->TTL('w3ckey')); // 查看给定 key 的剩余生存时间,int 7

5、KEYS

$redis = new redis();

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

$redis->flushAll();

$array_mset_keys = array(

'one' => 1,

'two' => 2,

'three' => 3,

'four' => 4,

);

$redis -> mset($array_mset_keys);

// KEYS * 命中数据库中所有key。

var_dump($redis -> keys('*')); // array (size=4) 0 => string 'four' (length=4) 1 => string 'two' (length=3) 2 => string 'three' (length=5) 3 => string 'one' (length=3)

// KEYS *o* 命中所有包含 "o" 的key。

var_dump($redis -> keys('*o*')); // array (size=4) 0 => string 'four' (length=4) 1 => string 'two' (length=3) 2 => string 'one' (length=3)

// KEYS 0?? 命中 "o" 后面有几个问号就命中几位数。

var_dump($redis->keys("o??")); //array (size=1) 0 => string 'one' (length=3)

// KEYS t[wh]* 命中 "t" 后面跟了 "w" , "h" 或者 "wh" 的key。

var_dump($redis->keys("t[wh]*")); //array (size=2) 0 => string 'two' (length=3) 1 => string 'three' (length=5)

6、MOVE

$redis = new redis();

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

$redis->flushAll();

// This first case: key 存在于当前数据库

$redis -> select(0); // redis 默认使用数据库0,这里在显示指定一次

$redis -> set('favorite_fruit','pineapple'); // 确保 key 值存在

if($redis -> move('favorite_fruit',1)){ // 将 favorite_fruit 移动到数据库 1 中, int 1

$redis -> select(1); // 选择数据库 1

var_dump($redis -> get('favorite_fruit')); // string pineapple

}

// This second case: key 不存在

$redis -> select(0);

if(! $redis->exists('fake_key')){ // key 不存在

$redis -> move('fake_key',1); // 将 favorite_fruit 移动到数据库 1 中, int 0

}

$redis -> select(1);

var_dump($redis->exists('fake_key')); // boolean (false)

// This third case: 源数据库和目标数据库有相同的 key

$redis -> select(0);

$redis -> set('favorite_singer','Jay Chou'); // db0 和 db1 有相同的 key : favorite_singer

$redis -> select(1);

$redis -> set('favorite_singer','Xu Wei');

$redis -> select(0);

$redis -> move('favorite_singer',1); // 将 favorite_fruit 移动到数据库 1 中, int 0

echo $redis -> get('favorite_singer'); // db0 的值没有发生改变,string Jay Chou

$redis -> select(1);

echo $redis -> get('favorite_singer'); // db1 的值没有发生改变,string Xu Wei

7、PERSIST

$redis = new redis();

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

$redis->flushAll();

// This first case: key 存在且设置了过期时间

$redis -> set('favorite_fruit','pineapple');

$redis -> expire('favorite_fruit',20);

sleep(2);

echo $redis -> ttl('favorite_fruit').""; // 18

$redis -> persist('favorite_fruit'); // 移除过期时间

echo $redis -> ttl('favorite_fruit'); // -1 ,表示成功移除过期时间

// This second case: key 不存在

$redis -> select(0);

if(! $redis->exists('fake_key')){ // key 不存在

var_dump($redis -> persist('fake_key')); // boolean false

}

// This third case: key 存在但是没有设置过期时间

$redis -> select(0);

$redis -> set('favorite_singer','Jay Chou');

var_dump($redis -> persist('favorite_singer')); // boolean false

8、TTL

$redis = new redis();

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

$redis->flushAll();

// This first case: key 存在且设置了过期时间

$redis -> set('favorite_fruit','pineapple');

$redis -> expire('favorite_fruit',20);

sleep(2);

echo $redis -> ttl('favorite_fruit').""; // 18

// This second case: key 不存在

$redis -> select(0);

if(! $redis->exists('fake_key')){ // key 不存在

var_dump($redis -> ttl('fake_key')); // int -2

}

// This third case: key 存在但是没有设置过期时间

$redis -> select(0);

$redis -> set('favorite_singer','Jay Chou');

var_dump($redis -> ttl('favorite_singer')); // int -1

9、RENAME

$redis = new redis();

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

$redis->flushAll();

// This first case: key 存在且 newkey 不存在 ,成功改名

$redis -> set('fruit','pineapple');

$redis -> rename('fruit','favorite_fruit'); // 重命名

var_dump($redis -> exists('fruit')); // boolean false, 原来的 key 已经不存在

var_dump($redis -> exists('favorite_fruit')); // boolean true, key 变成了 newkey

// This second case: key 不存在 ,返回错误

$redis->flushAll();

if(! $redis ->exists('fake_key'))

{

var_dump($redis -> rename('fake_key','never_exists')); // boolean false

}

// This third case: key 和 newkey 相同 ,返回错误

$redis -> set('favorite_singer','Jay Chou');

var_dump($redis -> rename('favorite_singer','favorite_singer')); // boolean false

// This fourth case: newkey 已经存在, 覆盖

$redis -> set('PC','SONY');

$redis -> set('personal_computer','lenovo');

var_dump($redis -> rename('PC','personal_computer')); // boolean true

var_dump($redis -> get('personal_computer')); // string SONY

本作品采用《CC 协议》,转载必须注明作者和本文链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值