PHP 中 Redis 常用操作(string 类型)

  • string 是 Redis 最基本的类型,和 Memcached 一模一样的类型,一个key对应一个value。
  • string 类型是二进制安全的。这意味着 Redis 的 string 可以包含任何数据。比如JPG图片或者序列化的对象。
  • 一个 Redis 中字符串 value 最多可以是512M

设置(set)

仅支持字符串操作,不支持内置数据编码功能。如果需要存储PHP的非字符串类型,需要提前手动序列化,获取时再反序列化。

1
2
3
4
5
6
7
8
9
10
11
$user = [
'name' => 'zhaosi',
'age' => 49,
];
//$user数组序列化成json字符串
$user = json_encode($user);
$redis->set('user', $user);
$data = $redis->get('user');
//拿到序列化后的字符串,再反序列化成PHP数组
$data = json_decode($data, true);
var_dump($data);

setnx() 方法是只有在 key 不存在时设置 key 的值,

设置并指定过期时间(setex)

设置键的同时,设置过期时间(秒)

1
$redis->setex('user', 60, 'user_1256465');

获取值(get)

1
2
3
$redis->set('name', 'liuneng'); //设置
$name = $redis->get('name'); //获取
var_dump($name);

增加(incr, incrBy)

incr()incrBy() 都是操作数字,对数字进行增加的操作,incr是执行原子加1操作,incrBy是增加指定的数

1
2
3
$redis->set('age', 49);
$redis->incr('age'); //等于$age++
$redis->incrBy('age', 10); // 等于$age = $age + 10

减少(decr, decrBy)

decr()decrBy() 方法是对数字进行减的操作,和 incr 正好相反

1
2
3
$redis->set('age', 20);
$redis->decr('age'); //等于$age--
$redis->decrBy('age', 10); // 等于$age = $age - 5

追加(append)

append() 表示往字符串后面追加元素,返回值是字符串的总长度

示例:在’hello’后面追加’ world’

1
2
3
$redis->set('welcome', 'hello');
$length = $redis->append('welcome', ' world');
var_dump($length);

获取长度(strLen)

strLen() 方法可以获取字符串的长度

1
2
3
$redis->set('name', 'zhaosi');
$length = $redis->strlen('name');
var_dump($length); // 6

字符串截取(getRange)

getRange() 方法可以用来截取字符串的部分内容,第二个参数是下标索引的开始位置,第三个参数是下标索引的结束位置(不是要截取的长度),

1
2
3
$redis->set('ID', '411521199809151234');
$subStr = $redis->getRange('ID', 0, 5);
var_dump($subStr);

返回所有指定键的值mget()

1
2
3
4
$redis->set('user_1','zhaosan');
$redis->set('user_2','zhaosi');
$data = $redis->mget(['user_1','user_2']);
var_dump($data);

设置多个 key-value mset()

1
2
3
$redis->mset(array('key0' => 'value0', 'key1' => 'value1'));
var_dump($redis->get('key0'));
var_dump($redis->get('key1'));

设置一个值并返回该键处的前一个条目

1
2
3
$redis->set('x', '42');
$exValue = $redis->getSet('x', 'lol'); // return '42', replaces x by 'lol'
$newValue = $redis->get('x')' // return 'lol'

…..