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 图片加水印与上传图片加水印php类
May 12 PHP
PHP5权威编程阅读学习笔记 附电子书下载
Jul 05 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
PHP答题类应用接口实例
Feb 09 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
Sep 28 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
CakePHP框架Session设置方法分析
Feb 23 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 PHP
PHP 实现重载
Mar 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
php5.2.0内存管理改进
2007/01/22 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
utf8的编码算法 转载
2006/12/27 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
详解jquery和vue对比
2019/04/16 jQuery
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
Python的面向对象编程方式学习笔记
2016/07/12 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
python定义类self用法实例解析
2020/01/22 Python
python如何停止递归
2020/09/09 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
个人培训自我鉴定
2014/03/28 职场文书
大学生社团活动总结
2014/04/26 职场文书
2014年体育工作总结
2014/11/24 职场文书
2014年小学校长工作总结
2014/12/08 职场文书