php redis string

设置值
// set key value
$k10 = "imei:string:set10";
$redis->set($k10, 10);// retrun true

// setex seconds value
$k11 = "imei:string:set11";
$redis->setex($k11, 10, 1000);// retrun true

// setnx 键必须不存在才能设置成功 => 用于添加
// setnx key value
$k12 = "imei:string:set12";
$redis->setnx($k12, 1000);// retrun 1
$redis->setnx($k12, 1000);// retrun 0

// expire key seconds
$redis->expire($k10, 10);// retrun 1
$redis->expire($k12, 10);// retrun 1
获取值
// 2 get
// get key
$k20 = "imei:string:20";
$redis->del($k20);
$redis->set($k20, 'v20');         // retrun true
var_dump($redis->get($k20));      // string(3) "v20"
批量设置获取值
// 3 mset mget
// mset key val [key1 val1 key2 val2]
// mget key [key1 key2 ]
$k30 = 'imei:string:30';
$k31 = 'imei:string:31';
$k32 = 'imei:string:32';
$k33 = 'imei:string:33';
$redis->del($k30);
$redis->del($k31);
$redis->del($k32);
$redis->del($k33);
$redis->mset($k30, 'v30', $k31, 'v31', $k32, 'v32', $k33, 'v33');
print_r($redis->mget($k30, $k31, $k32, $k33));// [ v30, v31 , v32 , v33 ]

单个键管理

1.重命名
// 1 rename
// rename key newkey
$k20 = "imei:string:20";
$k21 = "imei:string:21";
$k23 = "imei:string:23";
$k24 = "imei:string:24";
$redis->del($k20);
$redis->del($k21);
$redis->set($k20, 'v20');
$redis->set($k21, 'v21');
var_dump($redis->get($k20));      // string(3) "v20"
var_dump($redis->get($k21));      // string(3) "v21"
var_dump($redis->rename($k20, $k21));      // bool(true)
var_dump($redis->get($k20));      // NULL
var_dump($redis->get($k21));      // string(3) "v20"
// rename操作会删除原来的key => $k20 如果键对应的值较大,会有阻塞Redis可能性
// rename操作会覆盖newkey => $k21

echo '
'; // renamenx : 防止被强行rename,确保只有newkey不存在的时候才被覆盖 $redis->set($k23, 'v23'); $redis->set($k24, 'v24'); var_dump($redis->get($k23)); // string(3) "v23" var_dump($redis->get($k24)); // string(3) "v24" var_dump($redis->renamenx($k23, $k24)); // string(1) "0" var_dump($redis->get($k23)); // string(3) "v23" var_dump($redis->get($k24)); // string(3) "v24"

2.随机返回一个键

// randomkey
var_dump($redis->randomkey());      // string(14) "imei:set:test2"
var_dump($redis->randomkey());      // string(14) "imei:string:32"

3 键过期

// expire : expire key seconds 键在seconds秒后过期
// ttl : ttl key 查询键的过期时间
// pttl :  pttl key 查询键的过期时间(毫秒级)
// expireat : expireat key timestamp 键在秒级时间戳 timestamp 后过期
// pexpire  :
// pexpireat  :
// persist  :
$k20 = "imei:string:20";
$k21 = "imei:string:21";
$k22 = "imei:string:22";
$k23 = "imei:string:23";
$k24 = "imei:string:24";
$redis->del($k20);
$redis->del($k21);
$redis->del($k22);
$redis->del($k23);
$redis->del($k24);
$redis->set($k20, 'v20');
$redis->set($k21, 'v21');

var_dump($redis->expire($k20, 100));      // string(1) "1"
var_dump($redis->ttl($k20));        // string(3) "100"

var_dump($redis->expireat($k21, time() + 100));      // string(1) "1"
var_dump($redis->ttl($k21));      // string(2) "99"

// ttl pttl 返回值说明
// 大于等于0的整数,键的过期时间
// -1,键没有设置过期时间
// -2,键不存在

echo '
'; $redis->set($k22, 'v22'); $redis->set($k23, 'v23'); $redis->set($k24, 'v24'); // 注意: // 1) expire key 的键不存在返回0 var_dump($redis->expire($k22, 100)); // string(1) "0" // 2) 如果过期时间为负值,键会立即被删除,犹如使用del一样 $redis->expire($k23, -2); var_dump($redis->get($k23));//null // 3) persist 可以将键的过期时间清除 $redis->persist($k22); var_dump($redis->ttl($k22)); // -1 // 4) 对于string类型的键,执行set会去掉过期时间 $redis->expire($k24, 100); var_dump($redis->ttl($k24)); // 100 $redis->set($k24, 'v24 again'); var_dump($redis->ttl($k24)); // -1 // 5) redis 不支持二级数据结构(hash、list)内部元素的过期功能,例如不能给列表内的一个元素设置过期时间 // 6) setex 命令 作为 set+expire的组合,不但是原子执行,同事还减少一次网络通讯时间

你可能感兴趣的:(php redis string)