字符串是 Redis
最基本的数据类型,能够存储任何类型的字符串,下面讲解具体的用法。
set
设置一个key,对应的值为字符串类型,成功返回 TRUE
,如果 key
已经存在,覆盖。1
2
3
4
5
6
7
8
9
10
11
12
13if ($redis->set('k1', 'v1')) {
echo 'success';
} else {
echo 'error';
}
$redis->set('k2', 'v2', 10); // 设置有过期时间的 key,过期时间单位秒
# 第三个参数也可以是数组
// 如果 key 不存在,设置他,ex 单位为秒
$redis->set('key', 'value', Array('nx', 'ex'=>10));
// 如果 key 存在,设置他,px 单位为毫秒
$redis->set('key', 'value', Array('xx', 'px'=>1000));
get
获取当前 key
的值,如果 key
不存在,返回 FALSE
。1
2
3if ($str = $redis->get('k1')) {
echo $str;
}
setEx, pSetEx
设置 key
具有过期时间,成功返回 TRUE
,两个函数的区别是:setEx
参数的单位是秒,pSetEx
参数的单位是毫秒。1
2$redis->setEx('k1', 10, 'v1'); // 设置过期时间为 10s
$redis->pSetEx('k1', 1000, 'v1'); // 设置过期时间为 1s
setNx
当数据库中不存在 key
时,设置它,成功 TRUE
,失败返回 FALSE
。1
2$redis->setNx('k2', 'v2'); // TRUE
$redis->setNx('k2', 'v3'); // FALSE
incr, incrBy
让一个存储数字的 key
增长,返回新的值。incr
值增长 1,
‘incrBy’ 可以设置增长值。1
2
3
4
5$redis->set('n1', 1);
$redis->incr('n1');
echo $redis->get('n1'); // 2
$redis->incrBy('n1', 10);
echo $redis->get('n1'); // 12
incrByFloat
给一个存储数字的 key
已浮点数增长。1
2
3$redis->set('n1', 1);
$redis->incrByFloat('n1', 1.5);
echo $redis->get('n1'); // 2.5
decr, decrBy
与 incr
和 incrBy
相反。1
2
3
4
5$redis->set('n1', 10);
$redis->decr('n1');
echo $redis->get('n1'); // 9
$redis->decrBy('n1', 10);
echo $redis->get('n1'); // -1
mGet
获取多个 key
的值,返回一个数组。1
2
3
4
5$arr = $redis->mGet([
'k1',
'k2'
]);
print_r($arr);
mSet
设置多个 key
的值,成功返回 TRUE
,失败返回 FALSE
。1
2
3
4
5
6
7
8
9$res = $redis->mSet([
'k1' => 'v1',
'k2' => 'v2',
'k3' => 'v3'
]);
var_dump($res);
echo $redis->get('k1');
echo $redis->get('k2');
echo $redis->get('k3');
getSet
返回旧值,设置新值,如果 key
不存在的话,直接设置,返回值为 FALSE
。1
2
3
4
5
6
7
8
9
10$redis->set('a', 1);
echo $redis->get('a'); // 1
$old = $redis->getSet('a', 'str');
echo $old; // 1
echo $redis->get('a'); // str
// 假设 b 没有设置
$b = $redis->getSet('b', 100);
var_dump($b); // false
echo $redis->get('b'); // 100
append
追加一个字符串到一个存储字符串的 key
后面,如果是数值的话,会隐式转换为字符串操作。1
2
3$redis->set('append', 'value##');
$redis->append('append', 'append');
echo $redis->get('append');
getRange & setRange
getRange
获取存储字符串中的某一段。setRange
设置存储字符串中的某一段。1
2
3
4$redis->set('range', 'hello world');
echo $redis->getRange('range', 0, 6);
$redis->setRange('range', 5, 'a');
echo $redis->get('range');
strLen
获取 key
中存储字符串的长度。1
2$redis->set('len', 'this is test');
echo $redis->strLen('len'); // 12
getBit
获取一个值的二进制位。1
2
3$redis->set('key', "\x7f"); // 0111 1111
$redis->getBit('key', 0); // 0
$redis->getBit('key', 1); // 1
setBit
改变一个值的二进制位。1
2
3$redis->set('n', 1); // 0000 0001
$redis->setBit('n', 6, 1); // 0000 0011
echo $redis->get('n');
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
End