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 相关文章推荐
将文件夹压缩成zip文件的php代码
Dec 14 PHP
PHP操作xml代码
Jun 17 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php中使用session防止用户非法登录后台的方法
Jan 27 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
php常用数组函数实例小结
Dec 29 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
PHP实现转盘抽奖算法分享
Apr 15 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
用文本文件制作留言板提示(下)
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
python实现哈希表
2014/02/07 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Scrapy的简单使用教程
2017/10/24 Python
Python变量赋值的秘密分享
2018/04/03 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
Python进度条的制作代码实例
2019/08/31 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
营销总经理岗位职责
2014/02/02 职场文书
高一新生军训方案
2014/05/12 职场文书
2014中考励志标语
2014/06/05 职场文书
财务部岗位职责
2015/02/03 职场文书
清洁工个人工作总结
2015/03/05 职场文书
初中语文教学随笔
2015/08/15 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python
python面向对象版学生信息管理系统
2021/06/24 Python