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 远程关机操作的代码
Dec 05 PHP
php懒人函数 自动添加数据
Jun 28 PHP
解析zend Framework如何自动加载类
Jun 28 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
常用PHP框架功能对照表
Oct 23 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
PHP二维数组去重实例分析
Nov 18 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
Sep 07 PHP
php和html的区别点详细总结
Sep 24 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实现word转html的方法
2016/01/22 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
python原始套接字编程示例分享
2014/02/21 Python
理解Python中函数的参数
2015/04/27 Python
python实现连接mongodb的方法
2015/05/08 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
python实现五子棋人机对战游戏
2020/03/25 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
Python函数中的可变长参数详解
2019/09/12 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
机电专业毕业生推荐信
2013/11/10 职场文书
消防安全标语
2014/06/07 职场文书
企业文化标语口号
2014/06/09 职场文书
应用心理学专业求职信
2014/08/04 职场文书
安全标兵事迹材料
2014/08/17 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
灵山大佛导游词
2015/02/04 职场文书
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android