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如何透过ODBC来存取数据库
Oct 09 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
PHP 编程安全性小结
Jan 08 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
Laravel框架路由配置总结、设置技巧大全
Sep 03 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
PHP中的事务使用实例
May 26 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
PHP常用技巧汇总
Mar 04 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 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 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
使用python接入微信聊天机器人
2020/03/31 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
Django之PopUp的具体实现方法
2019/08/31 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
班组长工作职责
2013/12/25 职场文书
爱情检讨书大全
2014/01/21 职场文书
《老山界》教学反思
2014/04/08 职场文书
学籍证明模板
2015/06/18 职场文书
Python机器学习之基础概述
2021/05/19 Python
MySQL数据库 任意ip连接方法
2022/05/20 MySQL