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 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
PHP根据IP地址获取所在城市具体实现
Nov 27 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
Dec 22 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PDO::prepare讲解
Jan 29 PHP
php设计模式之装饰模式应用案例详解
Jun 17 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
浅析PHP echo 和 print 语句
Jun 30 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计算一个文件大小的方法
2015/03/30 PHP
php三元运算符知识汇总
2015/07/02 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
python显示天气预报
2014/03/02 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
python def 定义函数,调用函数方式
2020/06/02 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
Python如何给函数库增加日志功能
2020/08/04 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
建筑工程管理专业自荐信范文
2013/12/28 职场文书
2014年度培训工作总结
2014/11/27 职场文书
施工安全员岗位职责
2015/04/11 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
python周期任务调度工具Schedule使用详解
2021/11/23 Python