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中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
PHP简单实现无限级分类的方法
May 13 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
php抛出异常与捕捉特定类型的异常详解
Oct 26 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
Laravel使用原生sql语句并调用的方法
Oct 09 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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
基于PHP技术开发客服工单系统
2016/01/06 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
javascript  Error 对象 错误处理
2008/05/18 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
javascript关于继承解析
2016/05/10 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
Python实现远程调用MetaSploit的方法
2014/08/22 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
python开发入门——列表生成式
2020/09/03 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
高中美术教学反思
2014/01/19 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
2016寒假假期总结
2015/10/10 职场文书
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫