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网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
PHP实现递归无限级分类
Oct 22 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
php生成网页桌面快捷方式
May 05 PHP
PHP代码重构方法漫谈
Apr 17 PHP
PHP实现支持CURL字符串证书传输的方法
Mar 23 PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
jquery 学习笔记一
2010/04/07 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
JavaScript中this详解
2015/09/01 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
vue.js实现备忘录功能的方法
2017/07/10 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
Python关于反射的实例代码分享
2020/02/20 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
绘画设计学生的个人自我评价
2013/09/20 职场文书
关于幼儿的自我评价
2013/12/18 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
详解MySQL中的pid与socket
2021/06/15 MySQL