Redis连接
在使用Redis的开始的时候,在phpinfo()中查看redis的类库是否已经加载,确保加载后使用。
连接
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
## 密码命令没有就不写
$redis->auth('test123');
## 检测是否连接成功,成功输出1
$redis->ping();
String(字符串操作)
// 写入 set("键","值")
$redis->set('key1', 'value1');
$redis->set('key2', 'value2');
$redis->set('key3', 'value3');
//读取 get("键")
$redis->get('key1');
$redis->get('key2');
$redis->get('key3');
// mGet(["键1","键2",...,"键n"]) 获取所有指定key的值 mGet()比get()性能高
$res = $redis->mGet(array('key1', 'key2', 'key3'));
dump($res);
//结果
array(3) {
[0] => string(6) "value1"
[1] => string(6) "value2"
[2] => string(6) "value3"
}
// setRange() 修改字符串的一部分
// getRange() 获取字符串的一部分
$redis->set('key','hello world');
$redis->setRange('key',6,'redis');
echo $redis->get('key');// hello redis
echo $redis->getRange('key',0,6); //hello r
// 往字符串后面加字符 append("键","字符")
$redis->set('name','zhangsan');
$redis->append('name','lisi');
echo $redis->get('name'); //zhangsanlisi
$redis->set('shenzhen',1);
// incr() 对指定的key的值加1
echo $redis->incr('shenzhen');//2
echo $redis->incr('shenzhen');//3
// decr()对指定的key的值减1
echo $redis->decr('shenzhen');//2
echo $redis->decr('shenzhen');//1
// incrBy() 将第二个参数的值加到key的值上
echo $redis->incrBy('shenzhen',6);//7
// decrBy() 将第二个参数的值减到key的值上
echo $redis->decrBY('shenzhen',3); //4
// incrByFloat() 自增一个浮点类型的值
echo $redis->incrByFloat('shenzhen',0.88);//4.88
// exists() 判断指定的key是否存在
echo $redis->exists('shenzhen'); //1
echo $redis->exists('shenzhen1'); //0
// multi() 将多个操作当做一个事务来处理,discard() 取消事务处理模式
// exec() 执行
$res = $redis->multi()
->set('key1', 'val1')
->get('key1')
->set('key2', 'val2')
->get('key2')
->exec();
dump($res);
//结果
array(4) {
[0] => bool(true)
[1] => string(4) "val1"
[2] => bool(true)
[3] => string(4) "val2"
}
// getset() 用于设置指定key的值,并返回key的旧值。
$redis->set('age',27);
echo $redis->get('age');//27
echo $redis->getSet('age','33');//27
// 顺序不同结果不同 $redis->set('age',27);
echo $redis->getSet('age','33');//27
echo $redis->get('age');// 33
$redis->set('key1', 'val1');
$redis->set('key2', 'val2');
$redis->set('key3', 'val3');
$redis->set('key4', 'val4');
// delete() 删除指定key的值,并返回删除的个数
$res1 = $redis->delete('key1', 'key2');
$res2 = $redis->delete(array('key3', 'key4'));
var_dump($res1); // int(2)
var_dump($res2); // int(2)
// 设置值时同时过期时间,单位秒 setex("键",时间(秒),"值")
$redis->setex('name',3600,'墨夜富');//3600秒
$lifetime = $redis->ttl('name');// 获取过期时间秒
$value = $redis->get('name');
echo "过期时间:".$lifetime;//过期时间:3600秒
echo "值:".$value;//值:墨夜富
// psetex() 给指定的key设置过期时间,单位毫秒
$redis->psetex('name',3600,'墨夜富');//3600毫秒
$lifetime = $redis->pttl('name');//获取过期时间毫秒
$value = $redis->get('name');
echo "过期时间:".$lifetime;//过期时间:3600毫秒
echo "值:".$value;//值:墨夜富
哈希
// hSet() 添加一个value到hash中
$redis->hSet('z', 'k1', '1');
$redis->hSet('z', 'k2', '2');
$redis->hSet('z', 'k3', 'v3');
// hIncrBy key k key自增某一个值,如果key不存在,自增后get(key)=k 整形
$redis->hIncrBy('z', 'k1', 99);
// hIncrByFloat key 98.00 增加key对应的值98.00 浮点型
$redis->hIncrByFloat('z', 'k2', 98.00);
$res = $redis->hGetAll('z');
dump($res);
//结果
array(3) {
["k1"] => string(3) "100"
["k2"] => string(3) "100"
["k3"] => string(2) "v3"
}
// 批量设置HASH表
$redis->hMset('zcz', array('name' => 'rocky', 'age' => 27));
//hGetAll key 返回hash key对应所有的field和value
$res = $redis->hGetAll('zcz');
dump($res);
//返回结果
array(2) {
["name"] => string(5) "rocky"
["age"] => string(2) "27"
}
// hExists() 判断hash表中是否存在指定的key
$res1 = $redis->hExists('z','k1');
dump($res1); // bool(true)
$res2 = $redis->hExists('z','k4');
dump($res2); //bool(false)
//hLen 查看hash key中有几个值
$res3 = $redis->hLen('z');
dump($res3); //int(3)
// hVals() 获取hash表中所有的value,以数组形式返回
$res = $redis->hVals('z');
dump($res);
//结果
array(3) {
[0] => string(2) "v1"
[1] => string(2) "v2"
[2] => string(2) "v3"
}
// hKeys() 获取hash表中的keys,以数组形式返回
$res = $redis->hKeys('z');
dump($res);
//结果
array(3) {
[0] => string(2) "k1"
[1] => string(2) "k2"
[2] => string(2) "k3"
}
// hDel() 删除指定的元素
$redis->hDel('z','k1');
$res = $redis->hGetAll('z');
dump($res);
//结果
array(2) {
["k2"] => string(2) "v2"
["k3"] => string(2) "v3"
}
// hSetNx("键",key,值) key不存在,才设置value
$res1 = $redis->hSetNx('z','k1','v1');
$res2 = $redis->hSetNx('z','k1','v2');
var_dump($res1);//bool(true)
var_dump($res2);//bool(false)

@1墨夜富
666