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);