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实现的获取URL信息的类
Jan 02 PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 PHP
基于php和mysql的简单的dao类实现crud操作功能
Jan 27 PHP
php内核解析:PHP中的哈希表
Jan 30 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
详解PHP中的null合并运算符
Dec 30 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
Mar 17 PHP
PHP根据session与cookie用户登录状态操作类的代码
May 13 PHP
php抽奖概率算法(刮刮卡,大转盘)
Apr 17 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
php简单检测404页面的方法示例
Aug 23 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下mysql数据库操作类(改自discuz)
2010/07/03 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
Javascript面向对象之四 继承
2011/02/08 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
python解析中国天气网的天气数据
2014/03/21 Python
python实现点对点聊天程序
2018/07/28 Python
自学python的建议和周期预算
2019/01/30 Python
Python语言进阶知识点总结
2019/05/28 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
电气专业应届生求职信
2013/11/01 职场文书
应用英语专业自荐信
2014/01/26 职场文书
法人委托书范本格式
2014/09/15 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript