redis9 php 操作 reids

1redispipeline

 

管道的好处

这种技术的好处是极大地改善协议的性能。通过管道将慢互联网连接速度从5倍的连接速度提高到localhost至少达到百过倍。

redispipeline  怎么用的是事务呀

$resource = $this->cache->redispipeline();
$this->cache->HINCRBY($userKey,$field,1);
$this->cache->HINCRBY($userKey,$month_field,1);
$res = $this->cache->redisExec($resource);

pipeline 管道

 redis_cli 的一个工具,可以对 redis 服务器产生并发的请求

//管道开始
public function redispipeline()
{
    $result = $this->handler->multi(\Redis::PIPELINE);
    return $result;
}

//事务结束
public function redisExec($redisObj)
{
    $result = $redisObj->exec();
    return $result;
}

 

  1. <?php  
  2. $redis = new Redis();  
  3. $redis->connect('127.0.0.1', 6379);  
  4. $pipe = $redis->multi(Redis::PIPELINE);  
  5. for ($i = 0; $i < 3; $i++) {  
  6.     $key = "key::{$i}";  
  7.     print_r($pipe->set($key, str_pad($i, 2, '0', 0)));  
  8.     echo PHP_EOL;  
  9.     print_r($pipe->get($key));  
  10.     echo PHP_EOL;  
  11. }  
  12. $result = $pipe->exec();  
  13. print_r($result);  

参数说明:

 

 

Redis::MULTI或Redis::PIPELINE. 默认是 Redis::MULTI
Redis::MULTI:将多个操作当成一个事务执行
Redis::PIPELINE:让(多条)执行命令简单的,更加快速的发送给服务器,但是没有任何原子性的保证
 
 
 
 

 

在php代码中使用redis服务

$redis = new Redis();连接

$redis->connect('127.0.0.1',port);//redis服务器ip及端口号

$redis->pconnect($this->configs['host'],$this->configs['port'],$this->timeout);

$redis->auth($this->configs['password’]);//密码

$redis->close();

 

管道开始

$redis->mult(\Redis::PIOELINE);

事务接收

$redis->exec();

设置时间

$redis->expire($key,$expire);

 

$redis->set($key,$value);//设置缓存

$redis-> setex('key', 3600, 'value'带生存时间的写入值

$redis->setnx('key', 'value');//在 Redis 里,所谓 SETNX,是「SET if Not eXists」的缩写,也就是只有不存在的时候才设置,可以利用它来实现锁的效果//判断是否重复的,写入值

$redis->mset(array('key0' => 'value0', 'key1' => 'value1’));//同时给多个key赋值

$redis->get($key);//查找缓存

 

$redis->del($key);//删除缓存

$redis->delete($key);//删除缓存

$redis->delete(array('key3', 'key4', 'key5'));

 

 

hash

$redis->hgetall($key)//返回名称为h的hash中所有的键(field)及其对应的value

$redis->hget($key,$fields)

$redis->hset($key,$fields,$value)

hLen

$redis->hLen('h');

返回名称为h的hash中元素个数

hDel

$redis->hDel('h', 'key1');

删除名称为h的hash中键为key1的域

hMset

$redis->hMset('user:1', array('name' => 'Joe', 'salary' => 2000));

向名称为key的hash中批量添加元素

 

hMGet

$redis->hmGet('h', array('field1', 'field2'));

返回名称为h的hash中field1,field2对应的value

 

 

 

$redis->ping 查看连接状态

$redis->getOption 查看redis设置的模式

$redis->setOption 设置redis模式

 

ttl

得到一个key的生存时间

 

 

resource  = $redis->multi(\Redis::PIPELINE);//将多个操作当成一个事务执行

resource  = $redis->multi(\Redis::MULTI); //让(多条)执行命令简单的,更加快速的发送给服务器,但是没有任何原子性的保证

resource -> exec()

discard:删除一个事务

 

 

exists

判断key是否存在。存在 true 不在 false

 

incr, incrBy

key中的值进行自增1,如果填写了第二个参数,者自增第二个参数所填的值

$redis->incr('key1');

$redis->incrBy('key1', 10);

 

decr, decrBy

做减法,使用方法同incr

 

append

string,名称为key的string的值在后面加上value

$redis->set('key', 'value1');

$redis->append('key', 'value2');

$redis->get('key');

 

 

redis 操作相关

flushDB

清空当前数据库

 

flushAll

清空所有数据库

 

$redis->rename('x', 'y');

 

 

save

将数据同步保存到磁盘

 

bgsave

将数据异步保存到磁盘

 

type

返回key的类型值

string: Redis::REDIS_STRING

set: Redis::REDIS_SET

list: Redis::REDIS_LIST

zset: Redis::REDIS_ZSET

hash: Redis::REDIS_HASH

other: Redis::REDIS_NOT_FOUND

posted @ 2017-11-23 14:54  克维拉  阅读(228)  评论(0编辑  收藏  举报