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执行速度全攻略(下)
Oct 09 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
PHP实现股票趋势图和柱形图
Feb 07 PHP
PHP实现支持SSL连接的SMTP邮件发送类
Mar 05 PHP
php实现统计目录文件大小的函数
Dec 25 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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 全局变量范围分析
2009/08/07 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
测试PHP连接MYSQL成功与否的代码
2013/08/16 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
JS实现星星海特效
2019/12/24 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
原生JavaScript实现进度条
2021/02/19 Javascript
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
python3中int(整型)的使用教程
2017/03/23 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
python实现人工蜂群算法
2020/09/18 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
大学军训自我鉴定
2013/12/15 职场文书
护士辞职信范文
2014/01/19 职场文书
运动会100米解说词
2014/01/23 职场文书
聚美优品的广告词
2014/03/14 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
经理聘任证明
2015/03/02 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang