PHP redis操作类 个人总结

<pre name="code" class="php"><span style="font-size:18px;">class MyRedis {

    private $redis;

    /**
     * @param string $host
     * @param int $post
     */
    public function __construct($host = '10.102.1.8', $port = 6379) {
        $this->redis = new Redis();
        $this->redis->connect($host, $port);
        return $this->redis;
    }

    /**
     * 设置值  构建一个字符串
     * @param string $key KEY名称
     * @param string $value  设置值
     * @param int $timeOut 时间  0表示无过期时间
     */
    public function set($key, $value, $timeOut=0) {
        $retRes = $this->redis->set($key, $value);
        if ($timeOut > 0)
            $redis->expire('$key', $timeOut);
        return $retRes;
    }

    /*
     * 构建一个集合(无序集合)
     * @param string $key 集合Y名称
     * @param string|array $value  值
     */
    public function sadd($key,$value){
        return $this->redis->sadd($key,$value);
    }

    /*
     * 构建一个集合(有序集合)
     * @param string $key 集合名称
     * @param string|array $value  值
     */
    public function zadd($key,$value){
        return $this->redis->zadd($key,$value);
    }

    /**
     * 取集合对应元素
     * @param string $setName 集合名字
     */
    public function smembers($setName){
        return $this->redis->smembers($setName);
    }

    /**
     * 构建一个列表(先进后去,类似栈)
     * @param sting $key KEY名称
     * @param string $value 值
     */
    public function lpush($key,$value){
        echo "$key - $value \n";
        return $this->redis->LPUSH($key,$value);
    }

      /**
     * 构建一个列表(先进先去,类似队列)
     * @param sting $key KEY名称
     * @param string $value 值
     */
    public function rpush($key,$value){
        echo "$key - $value \n";
        return $this->redis->rpush($key,$value);
    }
    /**
     * 获取所有列表数据(从头到尾取)
     * @param sting $key KEY名称
     * @param int $head  开始
     * @param int $tail     结束
     */
    public function lranges($key,$head,$tail){
        return $this->redis->lrange($key,$head,$tail);
    }

    /**
     * HASH类型
     * @param string $tableName  表名字key
     * @param string $key            字段名字
     * @param sting $value          值
     */
    public function hset($tableName,$field,$value){
        return $this->redis->hset($tableName,$field,$value);
    }

    public function hget($tableName,$field){
        return $this->redis->hget($tableName,$field);
    }

    /**
     * 设置多个值
     * @param array $keyArray KEY名称
     * @param string|array $value 获取得到的数据
     * @param int $timeOut 时间
     */
    public function sets($keyArray, $timeout) {
        if (is_array($keyArray)) {
            $retRes = $this->redis->mset($keyArray);
            if ($timeout > 0) {
                foreach ($keyArray as $key => $value) {
                    $this->redis->expire($key, $timeout);
                }
            }
            return $retRes;
        } else {
            return "Call  " . __FUNCTION__ . " method  parameter  Error !";
        }
    }

    /**
     * 通过key获取数据
     * @param string $key KEY名称
     */
    public function get($key) {
        $result = $this->redis->get($key);
        return $result;
    }

    /**
     * 同时获取多个值
     * @param ayyay $keyArray 获key数值
     */
    public function gets($keyArray) {
        if (is_array($keyArray)) {
            return $this->redis->mget($keyArray);
        } else {
            return "Call  " . __FUNCTION__ . " method  parameter  Error !";
        }
    }

    /**
     * 获取所有key名,不是值
     */
    public function keyAll() {
        return $this->redis->keys('*');
    }

    /**
     * 删除一条数据key
     * @param string $key 删除KEY的名称
     */
    public function del($key) {
        return $this->redis->delete($key);
    }

    /**
     * 同时删除多个key数据
     * @param array $keyArray KEY集合
     */
    public function dels($keyArray) {
        if (is_array($keyArray)) {
            return $this->redis->del($keyArray);
        } else {
            return "Call  " . __FUNCTION__ . " method  parameter  Error !";
        }
    }

    /**
     * 数据自增
     * @param string $key KEY名称
     */
    public function increment($key) {
        return $this->redis->incr($key);
    }

    /**
     * 数据自减
     * @param string $key KEY名称
     */
    public function decrement($key) {
        return $this->redis->decr($key);
    }

    /**
     * 判断key是否存在
     * @param string $key KEY名称
     */
    public function isExists($key){
        return $this->redis->exists($key);
    }

    /**
     * 重命名- 当且仅当newkey不存在时,将key改为newkey ,当newkey存在时候会报错哦RENAME
     *  和 rename不一样,它是直接更新(存在的值也会直接更新)
     * @param string $Key KEY名称
     * @param string $newKey 新key名称
     */
    public function updateName($key,$newKey){
        return $this->redis->RENAMENX($key,$newKey);
    }

   /**
    * 获取KEY存储的值类型
    * none(key不存在) int(0)  string(字符串) int(1)   list(列表) int(3)  set(集合) int(2)   zset(有序集) int(4)    hash(哈希表) int(5)
    * @param string $key KEY名称
    */
    public function dataType($key){
        return $this->redis->type($key);
    }

    /**
     * 清空数据
     */
    public function flushAll() {
        return $this->redis->flushAll();
    }

    /**
     * 返回redis对象
     * redis有非常多的操作方法,我们只封装了一部分
     * 拿着这个对象就可以直接调用redis自身方法
     * eg:$redis->redisOtherMethods()->keys('*a*')   keys方法没封
     */
    public function redisOtherMethods() {
        return $this->redis;
    }

}</span>

				
时间: 2024-10-20 07:49:04

PHP redis操作类 个人总结的相关文章

设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类

1 单例模式简单介绍 单例模式是一种经常使用的软件设计模式. 在它的核心结构中仅仅包括一个被称为单例类的特殊类. 通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问.从而方便对实例个数的控制并节约系统资源.假设希望在系统中某个类的对象仅仅能存在一个.单例模式是最好的解决方式. 2 模式核心思想 1)某个类仅仅能有一个实例: 2)它必须自行创建这个实例: 3)它必须自行向整个系统提供这个实例. 3 模式架构图 4 项目应用 4.1 需求说明 CleverCode在实际的PHP项目

php的redis 操作类,适用于单台或多台、多组redis服务器操作

redis 操作类,包括单台或多台.多组redis服务器操作,适用于业务复杂.高性能要求的 php web 应用. redis.php: <?php /* redis 操作类,适用于单台或多台.多组redis服务器操作 使用方法: 1.$rs=new mz_redis();$rs->load_config_file('redis_config1.php');$www=$rs->connect(1,true,0)==单台读连接,连接read_array第一个元素对应的redis服务器中的随

spring 的redis操作类RedisTemplate

spring 集成的redis操作几乎都在RedisTemplate内了. 已spring boot为例, 再properties属性文件内配置好 redis的参数 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=redispass spring.redis.database=0 spring.redis.timeout=5000 再到 Application启动类下加入以下代码: @Bean pu

用C#封装的ServiceStack.redis操作类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ServiceStack.Redis; namespace TestRedis { class RedisHelper:IDisposable { /*[email protected] All Rights Reserved * Author:Mars

【原】修改Redis操作类,支持选择数据库功能

版本3.2.2(ThinkPHP\Library\Think\Cache\Driver\Redis.class.php),官方默认不支持选择数据库功能,现就可选择数据库功能进行说明. 1 config.php  配置文件中选择数据库  'REDIS_DBINDEX' =>1, // 默认0,dev 1号,test2号 2 Redis.class.php中修改__construct()方法 'dbindex'    => C('REDIS_DBINDEX') ? C('REDIS_DBINDEX

php redis数据库操作类

<?php namespace iphp\db; use iphp\App; /** * redis操作类 * 说明,任何为false的串,存在redis中都是空串. * 只有在key不存在时,才会返回false. * 这点可用于防止缓存穿透 * @author xuen * */ class Redis { private $redis; //当前数据库ID号 protected $dbId=0; //当前权限认证码 protected $auth; /** * 实例化的对象,单例模式. *

封装php redis缓存操作类

封装php redis缓存操作类,集成了连接redis并判断连接是否成功,redis数据库选择,检测redis键是否存在,获取值,写入值,设置生存时间和删除清空操作. php redis类代码: <?php/*** redisdrive.class.php* php redis 操作类**/class redisdrive{ //键名 public $key; //值 public $value; //默认生存时间 public $expire = 86400; /*60*60*24*/ //连

5.C#编写Redis访问类

那么通过前面几篇博文,服务端的安装和配置应该没什么问题了,接下来的问题是如何通过代码来访问Redis. 这里我们使用的库为: StackExchange.Redis GitHub:https://github.com/StackExchange/StackExchange.Redis NuGet:PM> Install-Package StackExchange.Redis Newtonsoft.Json(Json.NET) GitHub:https://github.com/JamesNK/N

StackExchange.Redis帮助类解决方案RedisRepository封装(基础配置)

本文版权归博客园和作者吴双本人共同所有,转载和爬虫,请注明原文地址.http://www.cnblogs.com/tdws/p/5815735.html 写在前面 这不是教程,分享而已,也欢迎园友们多提建议和指正.关于更多详细介绍,请到github上看Docs,下面附上地址. 关于Redis基础控制它台操作有疑问的,欢迎阅读本人Redis系列命令拾遗分享 http://www.cnblogs.com/tdws/tag/NoSql/ 如今StackService.Redis已经转向商业版本.4.0