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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
使用Xdebug调试和优化PHP程序之[1]
Apr 17 PHP
php设计模式小结
Feb 15 PHP
Linux编译升级php的详细方法
Nov 04 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
php获取远程文件内容的函数
Nov 02 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
Laravel 模型关联基础教程详解
Sep 17 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 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正则表达式之定界符和原子介绍
2012/10/05 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
使用Python的判断语句模拟三目运算
2015/04/24 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
python 链接和操作 memcache方法
2017/03/04 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
Django操作session 的方法
2020/03/09 Python
pandas 数据类型转换的实现
2020/12/29 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
中文系学生自荐信范文
2013/11/13 职场文书
实习生的自我评价
2014/01/08 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
机械系毕业生求职信
2014/05/28 职场文书
求职信的正确写法
2014/07/10 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android