PHP+redis实现的购物车单例类示例


Posted in PHP onFebruary 02, 2019

本文实例讲述了PHP+redis实现的购物车单例类。分享给大家供大家参考,具体如下:

<?php
/**
 * 购物车单例类
 *
 * @author YING
 * @param void
 * @return void
 */
class CartSingleton
{
  //定义一个静态的私有变量
  static private $_instance=null;
  private $redis=null;
  //私有化的构造方法
  private final function __construct()
  {
    //实例化
    $this->redis=new Redis();
    $this->redis->connect('127.0.0.1',6379);
  }
  //私有化的克隆方法
  private function __clone()
  {
  }
  //公有的静态方法
  static public function getInstance()
  {
    if(!(self::$_instance instanceof self)){
      self::$_instance = new CartSingleton();
    }
    return self::$_instance;
  }
  /**
   * 加入购物车
   *
   * @author YING
   * @param userId goodsName goodsId 用户id 商品名称 商品id
   * @return int
   */
   public function addCart($userId,$goodsName,$goodsId)
   {
     $hashKey="user_".$userId; //hash键名
     $key=$goodsId."_".$goodsName;//键名
     //加入
     return $this->redis->hIncrBy($hashKey,$key,1);
   }
  /**
   * 单删
   *
   * @author YING
   * @param userId goodsId
   * @return
   */
  public function cartDelOne($userId,$goodsId)
  {
    $hashKey="user_".$userId; //hash键名
    $key=$goodsId;//键名
    //删除
    return $this->redis->hDel($hashKey,$key);
  }
  /**
   * 清空购物车
   *
   * @author YING
   * @param userId
   * @return void
   */
  public function cartDelAll($userId)
  {
    $hashKey="user_".$userId; //hash键名
    //删除
    return $this->redis->del($hashKey);
  }
  /**
   * 购物车列表
   *
   * @author YING
   * @param userId
   * @return void
   */
  public function cartList($userId)
  {
    $hashKey="user_".$userId; //hash键名
    //查询数据
    return $this->redis->hGetAll($hashKey);
  }
}
//实例化类
$obj=CartSingleton::getInstance();

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP读取目录下所有文件的代码
Jan 07 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
PHP队列用法实例
Nov 05 PHP
php中异常处理方法小结
Jan 09 PHP
PHP中的流(streams)浅析
Jul 02 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 #PHP
PHP中的访问修饰符简单比较
Feb 02 #PHP
PHP PDOStatement::setAttribute讲解
Feb 01 #PHP
PHP PDOStatement::rowCount讲解
Feb 01 #PHP
PHP PDOStatement::nextRowset讲解
Feb 01 #PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 #PHP
PHP PDOStatement::getAttribute讲解
Feb 01 #PHP
You might like
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
详解Vue的异步更新实现原理
2020/12/22 Vue.js
Python中os.path用法分析
2015/01/15 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
yy司仪主持词
2014/03/22 职场文书
消防标语大全
2014/06/07 职场文书
毕业生找工作求职信
2014/08/05 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
2015年十月一日放假通知
2015/08/18 职场文书