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面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
php中spl_autoload详解
Oct 17 PHP
php使用post数组的键值创建同名变量并赋值的方法
Apr 03 PHP
php使用PDO执行SQL语句的方法分析
Feb 16 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 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
?生?D片??C字串
2006/12/06 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
JavaScript的public、private和privileged模式
2009/12/28 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python新手学习标准库模块命名
2020/05/29 Python
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
物业总经理岗位职责
2014/02/28 职场文书
党员志愿者活动方案
2014/08/28 职场文书
财务统计员岗位职责
2015/04/14 职场文书
投诉书格式范本
2015/07/02 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
解析MySQL binlog
2021/06/11 MySQL
js前端图片加载异常兜底方案
2022/06/21 Javascript
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS