hi,欢迎访问本站!
当前位置: 首页编程开发正文

php连接redis以及操作redis数据的方法

墨初 编程开发 670阅读

下面是一些关于利用php脚本来操作redis缓存数据库的方法,比如php连接redis数据库,php向redis数据库中写入数据,获取数据以及操作各种redis数据类型的方法。

php连接redis

$redis = new Redis();
$redis->connect($host,$port);
$redis->auth('pass'); //密码验证,如果没有密码可省略这一步

php普通写入/读取数据

$redis->set('1','1',3600);
// 批量操作
$redis->multi(Redis::PIPELINE); // 开始批量操作
// $redis->pipeline(); // 或者 开始批量操作
$redis->get("1");
$redis->incr("incr",2); // 自增2
$redis->expire('incr', 86400*20); // 设置key的过期时间
// $redis->expireAt('incr', strtotime('+1 days')); // 设置key的过期时间
$data = $redis->redis->exec();  // 结束批量操作
var_dump($data[0]); // 获取批量操作第一个 get
var_dump($data[1]); // 获取批量操作第一个 incr
$redis->close();  // 关闭redis连接
php redis集合相关方法
// 添加元素进入集合
$redis->sAdd('lm_template_set_num',1);
$redis->sAdd('lm_template_set_num',2);
$redis->sAdd('lm_template_set_num',3);
$redis->sAdd('lm_template_set_num',4);
$redis->sAdd('lm_template_set_num',5);
 
// 删除集合中指定的元素值,1 成功,0删除失败
$r = $redis->sRem('lm_template_set_num',4); 
var_dump($r); 
 
// 返回集合中元素的数量
$r = $redis->sCard('lm_template_set_num');
var_dump($r); 
 
// 移除并返回集合中的一个随机元素
$r = $redis->sPop('lm_template_set_num');
var_dump($r); 
 
// 返回集合中的一个随机元素。$num 随机取的个数
$r = $redis->sRandMember('lm_template_set_num',$num);
var_dump($r); 
 
// 判断成员元素是否是集合的成员。1 存在 0 不存在
$r = $redis->sIsMember('lm_template_set_num',1);
var_dump($r); 
 
// 获取集合中所有的元素
$r = $redis->sMembers('lm_template_set_num');
var_dump($r);

php 有序集合相关方法

// 向有序集合添加一个或多个成员,或者更新已存在成员的分数
$redis->zAdd('lm_template_set_num',1,"one");
$redis->zAdd('lm_template_set_num',2,"two");
$redis->zAdd('lm_template_set_num',1,"three"); 
 
// 计算集合中元素的数量
$r = $redis->zCard('lm_template_set_num');
var_dump($r);
 
// 计算在有序集合中指定区间分数的成员数
// 返回名称为key的zset中score >= star且score <= end的所有元素的个数
$r = $redis->zCount('lm_template_set_num',1,3); 
var_dump($r); 
 
// 有序集合中对指定成员的分数加上增量 increment
$r = $redis->zIncrBy('lm_template_set_num',1,"three"); 
var_dump($r);
 
// 通过索引区间返回有序集合成指定区间内的成员
$r = $redis->zRange('lm_template_set_num',0,-1); // 递增排列
$r = $redis->zRevRange('lm_template_set_num',0,-1); // 递减排列
var_dump($r); 
 
// 返回有序集合中指定成员的索引
$r = $redis->zRank('lm_template_set_num', "three"); // 从低到高 显示three 的排名
var_dump($r); 
$r = $redis->zRevRank('lm_template_set_num', "three"); // 从高到低 显示three 的排名 
var_dump($r); 
 
// 移除有序集合中的一个或多个成员
$r = $redis->zRem('lm_template_set_num', "three"); // 显示移除three
var_dump($r); 
 
// 返回有序集中,成员的分数值
$r = $redis->zScore('lm_template_set_num', "three");  
var_dump($r); 
php redis列表操作
$key = 'lm_list';
 
// 将一个或多个值插入到列表头部
$redis->lPush($key,1);
 
//将一个或多个值插入到已存在的列表头部  列表不存在时操作无效。
$redis->lPushx($key,1);
 
// 在列表中添加一个或多个值
$redis->rPush($key,1);
 
//为已存在的列表添加值 列表不存在时操作无效。
$redis->rPushx($key,1);
 
//用于通过索引获取列表中的元素。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
$redis->lIndex($key,1);
 
// 获取列表长度
$redis->lLen($key);
 
// 移出并获取列表的第一个元素
$redis->lPop($key);
 
//移除并获取列表最后一个元素
$redis->rPop($key);
 
// 获取列表指定范围内的元素
$redis->lRange($key,0,-1);
 
// 移除列表元素
$redis->lRem($key,1,0);
 
// 通过索引设置列表元素的值
$redis->lSet($key,0,'bar');

php redis哈西操作方法

$key = 'lm_hash';
 
// 添加元素进入哈希表中。
$redis->hSet($key,1,2);
 
// 用于同时将多个 field-value (字段-值)对设置到哈希表中。
$redis->hMset($key,array(1=>1,2=>2,3=>3));
 
// 只有在字段 field 不存在时,设置哈希表字段的值。
$redis->hSetNx($key,1,2);
 
// 返回哈希表中指定字段的值
$res = $redis->hGet($key,1);
print_r($res);
 
// 返回哈希表中一个或多个给定字段的值
$res = $redis->hMGet($key,array(1,2));
print_r($res);
 
// 返回哈希表中所有的字段和值
$res = $redis->hGetAll($key);
print_r($res);
 
// 查看哈希表 key 中,指定的字段是否存在。
$redis->hExists($key,1);
 
// 删除一个或多个哈希表字段
$redis->hDel($key,1);
 
// 用于为哈希表中的字段值加上指定增量值。 增量也可以为负数,相当于对指定字段进行减法操作。
$res = $redis->hIncrBy($key,3,1);
print_r($res);
 
// 用于为哈希表中的字段值加上指定浮点数增量值
$redis->hIncrByFloat($key,3,0.1);
 
//用于获取哈希表中的所有字段名。
$res = $redis->hKeys($key);
print_r($res);
 
// 获取哈希表中所有值
$res = $redis->hVals($key);
print_r($res);
 
//用于获取哈希表中字段的数量。
$redis->hLen($key);
声明:无特别说明,转载请标明本文来源!