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) 打赏

评论列表 共有 2 条评论

test 3年前 回复TA

@1墨夜富

test 3年前 回复TA

666

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部