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 代码优化的42条建议 推荐
Sep 25 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
php文件读取方法实例分析
Jun 20 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
php文件系统处理方法小结
May 23 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 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
什么是短波收听SWL
2021/03/01 无线电
PHP JSON 数据解析代码
2010/05/26 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
python3.0 字典key排序
2008/12/24 Python
Python pass 语句使用示例
2014/03/11 Python
对python多线程与global变量详解
2018/11/09 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
python Pexpect模块的使用
2020/12/25 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
交通事故起诉书
2015/05/19 职场文书
关于观后感的作文
2015/06/18 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
班级班风口号大全
2015/12/25 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python