文档章节

php对redis的list(列表)操作

mrmusic
 mrmusic
发布于 2016/02/28 17:53
字数 662
阅读 39
收藏 0
<?php
require('redistest.php');
class listcache extends cache{
   public function __construct(){

       parent::__construct();
   }

   /**
    * 向列表的左边添加元素,返回值表示添加元素后列表的长度
    *
    * @param $key string
    * @param $value string
    * @return int
    */
   public function lpush($key,$value){

       return $this->redis->lPush($key,$value);
   }

   /**
    * 向列表的右边添加元素,返回值表示添加元素后列表的长度
    *
    * @param $key string
    * @param $value string
    * @return mixed int
    */
   public function rpush($key,$value){

       return $this->redis->rPush($key,$value);
   }

   public function lpushx($key,$value){

       return $this->redis->lPushx($key,$value);
   }

   public function rpushx($key,$value){

       return $this->redis->rPushx($key,$value);
   }

   /**
    * 从列表左边弹出一个元素,1、将列表左边元素从列表中移除,2、返回被移除的元素值
    * (删除操作)
    * @param $key string
    * @return string
    */
   public function lPop($key){

       return $this->redis->lPop($key);
   }

   /**
    * 从列表右边弹出一个元素
    *
    * @param $key string
    * @return string
    */
   public function rPop($key){

       return $this->redis->rPop($key);
   }

   //$redis->blPop('key1', 'key2', 10);

   /**
    * 返回列表中元素的个数
    *
    * @param $key string
    * @return int
    */
   public function lSize($key){

       return $this->redis->lSize($key);
   }

   /**
    * 获取列表中指定位置的值
    *
    * @param $key
    * @return mixed
    */
   public function lGet($key,$location=0){

           return $this->redis->lGet($key,$location);

   }

   /**
    * 给元素指定位置赋相应的值
    * @param $key string
    * @param $location  int
    * @param $value string
    * @return bool true|false
    */
   public function lSet($key,$location,$value){

       return $this->redis->lSet($key,$location,$value);
   }

   /**
    * 获取列表的片段
    * @param $key string 键名
    * @param $start  int
    * @param $end   int (-1表示返回所有)
    * @return  array
    */
   public function lRange($key,$start,$end){

       return $this->redis->lRange($key,$start,$end);
   }

   /**
    * 只保留列表指定的片段
    *
    * @param $key string
    * @param $start int
    * @param $end int
    * @return bool true|false
    */
   public function lTrim($key,$start,$end){

       return $this->redis->lTrim($key,$start,$end);
   }

   /**
    * 删除count个名称为keylist中值为value的元素。count0,删除所有值为value的元素,
    * count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素
    *
    * @param $key
    * @param $value
    * @param $count
    * @return mixed
    */
   public function lRem($key,$value,$count){

       return $this->redis->lRem($key,$value,$count);
   }

   /**
    * LINSERT命令首先会在列表中从左到右查找值为pivot的元素,然后根据第二个参数是
    *  BEFORE还是AFTER来决定将value插入到该元素的前面还是后面。
    *
    * @param $key string 列表名字
    * @param $pivot string 所要查找的值
    * @param $value  要插入的值
    * @param int $dirct 0表示前面,1表示后面
    * @return int 返回插入后列表的个数
    */
   public function lInsert($key,$pivot,$value,$dirct=0){
       if($dirct==0){
           return $this->redis->lInsert($key,Redis::BEFORE,$pivot,$value);
       }elseif($dirct==1){
           return $this->redis->lInsert($key,Redis::AFTER,$pivot,$value);
       }
   }

   /**
    * 返回并删除名称为$key1list的尾元素,并将该元素添加到名称为$key2list的头部
    *
    * @param $key1 list
    * @param $key2 list
    * @return string
    */
   public function rpoplpush($key1,$key2){

       return $this->redis->rpoplpush($key1,$key2);
   }

}


© 著作权归作者所有

mrmusic
粉丝 11
博文 34
码字总数 23901
作品 0
数据库管理员
私信 提问
Redis 笔记与总结8 PHP + Redis 信息管理系统(分页+好友关注)

Redis 笔记与总结8 PHP + Redis 信息管理系统(分页+好友关注) 分页 要对列表页进行分页,需要知道: ①用户总数 $count ② 页大小 $pageSize:用户自定义 ③ 当前页:$page:GET 方式获取 ...

蜗牛奔跑
2016/03/10
22
0
(3)redis队列功能

Redis队列功能介绍 List 常用命令: Blpop删除,并获得该列表中的第一元素,或阻塞,直到有一个可用 Brpop删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用 Brpoplpush Lindex获...

Airship
2016/01/26
96
0
Redis 笔记与总结7 PHP + Redis 信息管理系统(用户信息的增删改查)

Redis 笔记与总结7 PHP + Redis 信息管理系统(用户信息的增删改查) 1. PHP 连接 Redis 访问 redis 官方网站的 client 栏目:http://www.redis.io/clients#php,可以获取 redis 的 php 扩展...

蜗牛奔跑
2016/05/10
78
0
Redis在Php项目中的实际应用场景

前言 一些案例中有的同学说为什么不可以用string类型,string类型完全可以实现呀 我建议你看下我的专栏文章《Redis高级用法》,里面介绍了用hash类型的好处 商品维度计数 对商品喜欢数,评论数...

charley158
2018/05/18
0
0
Redis的数据结构及应用场景

一. 谈谈对redis的理解,它的应用场景。 Redis是一个key-value存储系统,它支持存储的value类型包括string字符串、list链表、set集合、sorted Set有序集合和hash哈希等数据类型。这些数据类型...

Java干货分享
2018/12/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里技术男的成长史:越想证明自己死得越快……

在上海工作8年后,身为部门经理的钱磊,管理着一家ERP公司的百十来号员工,“再往上爬就是老板和他儿子了……从这个领域的技术角度来讲算是做到了顶。”05年,钱磊就开始关注一家名字奇怪,做...

阿里云官方博客
22分钟前
2
0
jquery的选择器之-表单对象属性过滤选择器

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>表单对象属性过滤选择器</title><script type="text/javascript" src="jquery-1.7.2.js"></script><script......

architect刘源源
23分钟前
1
0
[报名中]云+开发者大会武汉站-漫谈数据平台与智能应用

| 导语 6月2日,武汉世茂希尔顿酒店,腾讯云邀您参加云+开发者大会(武汉站),与技术大咖们漫谈数据平台与智能应用,洞察数据,启迪智能。 大数据与人工智能时代,新的数据智能平台技术及其...

腾讯云开发者社区
26分钟前
4
0
Linux系统打开文件最大数量限制(进程打开的最大文件句柄数设置)

ulimit [-HSTabcdefilmnpqrstuvx [limit]] 利用ulimit命令可以对资源的可用性进行控制。 -H选项和-S选项分别表示对给定资源的硬限制(hard limit)和软限制(soft limit)进行设置。 硬限制(...

BryceLoski
27分钟前
1
0
C++写入utf-8带BOM文件

/** * 为了能让3ds max 的打包zip程序能够读取txt列表文件. * 必须要能写入utf-8带BOM的txt文件. * 关键代码是用wstring_convert把wstring转成string * 之前试过wfstream , 直接就没法写...

洛克人杰洛
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部