php操作redis代码

2023-05-16

 
<?php
/**
 * Redis缓存操作
 * @author hxm
 * @version 1.0
 * @since 2015.05.04
 */
class RCache extends Object implements CacheFace
{
    private $redis = null; //redis对象

    private $sId  = 1;  //servier服务ID

    private $con  = null;//链接资源

    /**
     * 初始化Redis
     *
     * @return Object
     */
    public function __construct()
    {
        if ( !class_exists('Redis') )
        {
            throw new QException('PHP extension does not exist: Redis');
        }
        $this->redis = new Redis();
    }

    /**
     * 链接memcahce服务
     *
     * @access private
     * @param  string $key 关键字
     * @param  string $value 缓存内容
     * @return array
     */
    private function connect( $sid )
    {
        $file = $this->CacheFile();
        require $file;
        if(! isset($cache) )
        {
            throw new QException('缓存配置文件不存在'.$file);
        }
        $server = $cache[$this->cacheId];
        $sid  = isset($sid) == 0 ? $this->sId : $sid;//redis服务选择
        if ( ! $server[$sid])
        {
            throw new QException('当前操作的缓存服务器配置文件不存在');
        }
        $host = $server[$sid]['host'];
        $port = $server[$sid]['port'];
        try {
            $this->redis->connect( $host , $port );
        } catch (Exception $e) {
            exit('redis连接失败,错误信息:'. $e->getMessage());
        }
    }

    /**
     * 写入缓存
     *
     * @access private
     * @param  string $key 关键字
     * @param  string $value 缓存内容
     * @return array
     */
    public function set( $key , $value , $sid , $expire = 0)
    {
        $data = $this->get($key , $sid); //如果已经存在key值
        if( $data )
        {
            return $this->redis->getset( $key , $value);
        } else {
            return $this->redis->set( $key , $value);
        }
    }

    /**
     * 读取缓存
     *
     * @access private
     * @param  string $key 关键字
     * @param  int   $sid 选择第几台memcache服务器
     * @return array
     */
    public function get( $key , $sid)
    {
        $this->connect( $sid );
        return $this->redis->get($key);
    }

    /**
     * 清洗(删除)已经存储的所有的元素
     *
     * @access private
     * @return array
     */
    public function flush()
    {
        $this->connect();
        return $this->redis->flushall();
    }
    /**
     * 删除缓存
     *
     * @access private
     * @param  string $key 关键字
     * @param  int   $sid 选择第几台memcache服务器
     * @return array
     */
    public function remove( $key , $sid)
    {
        $this->connect();
        return $this->redis->del($key);
    }

    /**
     * 析构函数
     * 最后关闭redis
     */
    public function __destruct()
    {
        if($this->redis)
        {
            $this->redis->close();
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php操作redis代码 的相关文章

随机推荐

  • 服务器后台自动运行程序和停止

    后台运行命令 如何后台运行python程序 关键的命令 xff1a nohup 只需要输入下面的命令就可以在后台一直执行python程序啦 nohup python u test py gt test log 2 gt amp 1 amp
  • 谷歌浏览器(Chrome)插件安装失败的解决办法

    最新的谷歌浏览器下载完成以后进行安装插件时 xff0c 可能会提示 无法从该网站添加应用 扩展程序和用户脚本 的提示 这是因为谷歌比较重视用户信息安全性的 xff0c 所以不希望用户随便安装一些除官方商店之外的东西 xff0c 以免造成用户
  • Docker-CentOS开启防火墙firewalled映射Docker端口

    开启docker的Tomcat容器后 xff0c 启动 docker run d p 8080 8080 tomcat 访问不了Tomcat 查看防火墙所有开放的端口 firewall cmd zone 61 public list por
  • mysql 5.6 utf-8 编码设置

    mysql 5 5 utf 8编码 正确设置的方法 xff1a 在 etc my cnf mysqld utf 8 设置 character set server 61 utf8 collation server 61 utf8 gener
  • 文件内容查找方式

    第一种 xff0c 使用windows自带的查找工具 搜索工具里面有 高级选项 xff0c 选择 文件内容 然后进行搜索即可 第二种 xff0c 使用命令行 在需要进行搜索的文件夹下使用命令行 xff1a Get span class to
  • Image打包流程-Android10.0编译系统(四)

    摘要 xff1a 本节主要来进行Android10 0 Image打包流程 xff0c 理解system img是如何打包的 1 概述 前面我们讲完了Android10 0 编译的初始化和make的完整流程 xff0c 从make中我们看到
  • Ubuntu18.04安装踩坑与排错记录

    很早以前就想装Ubuntu玩玩了 xff0c 今天终于动手实现了这个想法 但过程并不顺利 xff0c 所以记录一下 对他人可能借鉴意义不大 xff0c 但对自己来说还是有记录价值的 机子是之前淘汰掉的华硕笔记本 xff08 14年买的 xf
  • Jupyter Notebook FileNotFoundError: [WinError 2] 系统找不到指定的文件

    问题描述 xff1a 通过Anaconda新创建环境 tfenv python 61 3 5 5 并依次安装tensorflow ipython xff0c jupyter xff0c matplotlib这三个包及其依赖包 然后在该环境下
  • 命令提示符(cmd)的一些简单用法

    命令提示符 xff08 cmd xff09 快捷键 xff1a win 43 r 切换位置 xff1a 盘名 xff1a 进入目录 xff1a cd 43 文件夹名 xff08 tab可以切换文件夹 xff09 只要路径写对cd可以访问多级
  • Java中,&&与&,||与|的区别

    1 1 逻辑运算符 amp amp xff08 短路与 xff09 xff0c amp 用法 xff1a amp amp 和 amp 都是表示与区别是 xff1a amp amp 若第一个条件不满足 xff0c 后面条件就不再判断 而 am
  • Java基础类(六):Collections工具类

    目录 1 Collections 1 1 排序操作 xff1a xff08 均为static方法 xff09 1 2 查找 替换 1 3 同步控制 1 4 返回不可变集合 1 Collections Collections 是一个操作 Se
  • Bash脚本:采用for循环重复执行某条指令100次

    1 新建一个脚本文件 直接vim for sh就可以 2 编辑脚本文件 bin bash for i 61 1 i lt 61 100 i 43 43 do test 想要重复执行的命令 xff09 done 3 将脚本文件变为可执行文件
  • Android.mk 和 CMakeLists.txt 的转换规则

    Android mk 和 CMakeLists txt 都是用来构建 Android 应用程序或库的工具 但是它们有不同的语法和规则 xff0c 所以将一个 Android mk 文件转换成一个 CMakeLists txt 文件需要一些注
  • EFI Shell 命令参考

    对于使用使用DOS的人来说 xff0c 会使用DOS命令是最基本的 xff0c 而在当今即将盛行的EFI BIOS来说 xff0c 就有了新的变化 xff0c 如何操作EFI Shell 呢 xff1f 至此我贴出了EFI Shell 的命
  • mysql出现提示错误10061的解决方法

    MySQL出现提示错误10061的解决方法 错误提示 xff1a 今天打开Navicat连接mysql突然提示 2003 Can t connect to MySQL server on localhost 10061 xff09 的错误提
  • 3分钟爬取全网10W+爆款,脚本无偿分享,零基础拿来直接就能用!

    市面上的新媒体资料都是过去时了 xff0c 只有最新的爆款文才是新媒体人的福音 xff01 三分钟爬取全网10W 43 爆款文 xff01 爬虫脚本无偿分享 xff0c 拿来就能直接用 xff0c 零基础也能用 xff01 需要的看图 xf
  • 使用Wake On Lan远程唤醒

    使用Wake On Lan远程唤醒 客厅里的那台htpc xff0c 在无下片任务的时候 xff0c 大部分时间里都在白白浪费电 主板是支持wake on lan的 xff0c 把它弄成可以远程控制会比较经济 首先要设置bios xff0c
  • .gitignore文件作用

    gitignore文件用于在将文件提交到git暂存区时 xff0c 指定将哪些文件排除 xff1b 1 gitignore文件基本用法 在 git文件所在的目录创建 gitignore 文件 文件内容如下 span class token
  • 《计算机应用基础》形考作业及答案

    国家开放大学 计算机应用基础 形考作业 及 答案 题目1 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 兔子bu蹬鹰 在Word 2010中编辑文本时 编辑
  • php操作redis代码

    lt php Redis缓存操作 64 author hxm 64 version 1 0 64 since 2015 05 04 class RCache extends Object implements CacheFace priva