前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis实战之购物车

Redis实战之购物车

作者头像
切图仔
发布2022-09-14 14:54:22
1.3K0
发布2022-09-14 14:54:22
举报
文章被收录于专栏:生如夏花绚烂

传统的购物车实现有很多种方式,如session,cookie,数据库等,这几种方式实现各有优缺点,网上的文章太多了,这里就不一一阐述。 今天给大家分享的是Redis实现购物车功能,众所周知Redis相当于一个内存数据库,可以用来做缓存,存储数据等。写到这里学计算机都知道,内存(RAM)当出现断电数据就会丢失。这可能是Redis做购物车的最大缺点吧,不过这里可以通过配置RDB/AOF使Redis实现持久化,关于他们两个的区别,可以参照这篇文章

配置AOF使数据持久化

修改redis配置文件redis.conf

cd /usr/local/redis

vim redis.conf

appendonly no改成appendonly yes

确认 appendfsync everysec(每秒同步数据)

这里我们只简单修改了两项配置,更多配置参照这篇文章

接下来验证数据持久化是否配置成功 1.重启redis服务器 pkill -9 redis cd /usr/local/redis/bin ./redis-server ../redis.conf

在bin目录下查看是否生成appendonly.aof 文件

2.连接一个redis客户端 cd /usr/local/redis/bin ./redis-cli 写入几条数据并清除

3.redis服务器查看 appendonly.aof 生成如下内容

这个文件是用于数据恢复的 我们将最后一行代码 flushall删掉接下来重启redis看看数据能否恢复

pkill -9 redis

cd /usr/lcoal/redis/bin

./redis-server ../redis.conf

连接一个客户端尝试获取先前设置的值

可见数据恢复成功

实现购物车功能
代码语言:javascript
复制
//购物车添加
public function store(Request $request){
        $hashKey = "user_".Auth::id();
        $key = "goodd_".$request->gid;
        $goods = ["gid"=>$key,"gtitle"=>$request->gtitle,"gprice"=>$request->gprice,"gcover"=>$request->gcover,"gnum"=>$request->gnum];
        $res = Redis::hSet($hashKey,$key,json_encode($goods));
     }

这里我用到是redis hash数据类型 将 user+登录用户id作为hashkey,goodd+商品id作为key,key对应的值则是关于商品的一些信息

代码语言:javascript
复制
//购物车读取
 public function index(){
       return response()->json(["cars"=>json_encode(Redis::hGetAll('user_'.Auth::id()))]);
    }

购物车读取功能比较简单,直接查询该用户的id对应的hashkey即可得到商品信息

购物车删除 购物车修改 待添加

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置AOF使数据持久化
  • 实现购物车功能
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档