一、普通Redis实例化类:

class MyRedis
{
private $redis; public function __construct($host = '121.41.88.209', $port = 63789)
{
$this->redis = new Redis();
$this->redis->connect($host, $port);
} public function expire($key = null, $time = 0)
{
return $this->redis->expire($key, $time);
} public function psubscribe($patterns = array(), $callback)
{
$this->redis->psubscribe($patterns, $callback);
} public function setOption()
{
$this->redis->setOption(\Redis::OPT_READ_TIMEOUT,-1);
} }

二、单例模式Redis实例化类:

<?php
/**
* Created by PhpStorm.
* User: Tinywan
* Date: 2016/7/3
* Time: 9:26
* Mail: Overcome.wan@Gmail.com
* Singleton instance
*/ namespace Org\Util; class RedisInstance
{
/**
* 类对象实例数组,共有静态变量
* @var null
*/
private static $_instance; /**
* 数据库连接资源句柄
* @var
*/
private static $_connectSource; /**
* 私有化构造函数,防止类外实例化
* RedisConnect constructor.
*/
private function __construct()
{ } /**
* 单例方法,用于访问实例的公共的静态方法
* @return \Redis
* @static
*/
public static function getInstance()
{
if (!(static::$_instance instanceof \Redis)) {
static::$_instance = new \Redis();
self::getInstance()->connect(C('MASTER.HOST'), C('MASTER.PORT'), C('MASTER.TIMEOUT'));
}
return static::$_instance;
} /**
* Redis数据库是否连接成功
* @return bool|string
*/
public static function connect()
{
// 如果连接资源不存在,则进行资源连接
if (!self::$_connectSource)
{
//@return bool TRUE on success, FALSE on error.
self::$_connectSource = self::getInstance()->connect(C('MASTER.HOST'), C('MASTER.PORT'), C('MASTER.TIMEOUT'));
// 没有资源返回
if (!self::$_connectSource)
{
return 'Redis Server Connection Fail';
}
}
return self::$_connectSource;
} /**
* 私有化克隆函数,防止类外克隆对象
*/
private function __clone()
{
// TODO: Implement __clone() method.
} /**
* @return \Redis
* @static
*/
public static function test()
{
return 'test';
}

Redis基础知识之——自定义封装单实例和普通类Redis的更多相关文章

  1. 【进阶之路】Redis基础知识两篇就满足(一)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第一篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...

  2. Redis 02: redis基础知识 + 5种数据结构 + 基础操作命令

    Redis基础知识 1).测试redis服务的性能: redis-benchmark 2).查看redis服务是否正常运行: ping 如果正常---pong 3).查看redis服务器的统计信息: ...

  3. 【进阶之路】Redis基础知识两篇就满足(二)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第二篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...

  4. C#基础知识之父子类,实例、静态成员变量,构造函数的执行顺序(经典示例)

    父子类.示例.静态成员变量.构造函数的概念的基础理解完全可以利用下面的示例诠释,非常经典,直接上代码: public class ShowInfo { public ShowInfo(string i ...

  5. redis基础知识详解

    一.redis基础知识 1.Redis是什么Redis是一个开源的key-value存储系统. 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表 ...

  6. python+selenium之自定义封装一个简单的Log类

    python+selenium之自定义封装一个简单的Log类 一. 问题分析: 我们需要封装一个简单的日志类,主要有以下内容: 1. 生成的日志文件格式是 年月日时分秒.log 2. 生成的xxx.l ...

  7. Python+Selenium中级篇之8-Python自定义封装一个简单的Log类《转载》

    Python+Selenium中级篇之8-Python自定义封装一个简单的Log类: https://blog.csdn.net/u011541946/article/details/70198676

  8. Redis基础知识之—— 缓存应用场景

    转载原文:http://www.cnblogs.com/jinshengzhi/articles/5225718.html 一.MySql+Memcached架构的问题 Memcached采用客户端- ...

  9. Java基础知识回顾之三 ----- 封装、继承和多态

    前言 在上一篇中回顾了java的修饰符和String类,这篇就来回顾下Java的三大特性:封装.继承.多态. 封装 什么是封装 在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部份包装 ...

随机推荐

  1. Extended Data Type Properties [AX 2012]

    Extended Data Type Properties [AX 2012] This topic has not yet been rated - Rate this topic Updated: ...

  2. altera soc体验之旅 FPGA与ARM的窃窃私语

      喜大普奔,公司要评估用SOC做产品,我就自然而然的被安排了学习和评估的工作,于是,每天的工作就是开始研究soc了.其实,只要能静下心来学习,一切都还是能够弄出来的. 以前像个无头苍蝇一样到处乱撞, ...

  3. tr DEMO

    测试数据: [weblogic@etp-mall-dev7][/tmp]$ cat msn.txt aaa bbb bbb ccc ccc ddd bbb eee aaa ccc bbb sss 转换 ...

  4. 严重: IOException while loading persisted sessions: java.io.EOFException

    tomcat在启动时出现如下异常问题: 严重: IOException while loading persisted sessions: java.io.EOFException 严重: Excep ...

  5. Rsync原理介绍及配置应用

    1.前言 基于LAN或WAN的网络应用之间进行数据传输或者同步非常普遍,比如远程数据镜像.备份.复制.同步,数据下载.上传.共享等等.对此,最简单.直接的做法是对数据进行完全复制.然而,数据在网络上来 ...

  6. centos7.1-64bit安装qtcreator

    首先,启用 EPEL Repository: yum -y install epel-release 启用 EPEL Repository 後, 可以用 yum 直接安裝qtcreator: yum ...

  7. GCD 多线程同步

    @property (strong, nonatomic) dispatch_queue_t barrierQueue; _barrieQueue = dispatch_queue_create(&q ...

  8. ecshop第一讲之安装

    今天开始对Ectouch做一些研究,但是发现网上资源很少,而且官网对服务都需收费:并且提供的wiki.官方文档等都是空的,瞬间感觉,,,,后来开始海量搜索,最后发现只有论坛还有些东西可以看看,并对海量 ...

  9. 错误描述: 抱歉,该商品的交易金额与原先的不一致,请重新创建交易付款。 错误代码: TRADE_TOTALFEE_NOT_MATCH

    由于在支付宝最后支付,出现了问题导致未能支付成功,而支付宝已经记录了当前的网站订单号(out_trade_no),所以下次再以同一张订单进行支付时,就必须与之前的金额一致,否则就报上面的错. 解决方法 ...

  10. python项目练习3:万能的XML

    1.目的 如何用XML来表示多种数据,以及如何使用适合XML或SAX的简单API来处理XML文本.目标是通过一个描述各种网页和目录的XML文件生成一个完整的网站. 注:有关XML的描述参见http:/ ...