如何将购物车信息存到Redis中?
存到Redis中,好处是速度快。毕竟写到硬盘需要更多的时间。加入购物车的功能,操作很频繁,可以通过Redis快速写入,移除,修改。
用什么方式呢?
传统的KEY,VALUE不太合适,每次增加修改,都要把VALUE取出,序列化成数组之后,再改变结构,然后序列化存入。
幸好,Redis中有一种哈希的方式。它的特点就是每个KEY下面,包含对应的子KEY,VALUE。这样就方便操作每个用户下的购物车信息了。
用户的购物车标识为:
appid:openid:cart 作为大KEY
购物车中的存储内容为:
pid:sku_id 作为小KEY pnum 作为小VALUE
hset 存
127.0.0.1:6379> hset appid:openid:cart 3:1 10
(integer) 1
hgetall 取所有
127.0.0.1:6379> hgetall appid:openid:cart
1) "1:1"
2) "1"
3) "1:2"
4) "2"
5) "3:1"
6) "10"
hkeys 取KEY
127.0.0.1:6379> hkeys appid:openid:cart
1) "1:1"
2) "1:2"
3) "3:1"
hvals 取值
127.0.0.1:6379> hvals appid:openid:cart
1) "1"
2) "2"
3) "10"
hdel 删除
127.0.0.1:6379> hdel appid:openid:cart 3:1
(integer) 1
hlen 获取长度
127.0.0.1:6379> hgetall appid:openid:cart
1) "1:1"
2) "1"
3) "1:2"
4) "2"
127.0.0.1:6379> hlen appid:openid:cart
(integer) 2
hset 修改
127.0.0.1:6379> hset appid:openid:cart 3:1 100
(integer) 0
127.0.0.1:6379> hget appid:openid:cart 3:1
"100"
hincrby 增加,减少
127.0.0.1:6379> hget appid:openid:cart 3:1
"100"
127.0.0.1:6379> hincrby appid:openid:cart 3:1 1
(integer) 101
127.0.0.1:6379> hincrby appid:openid:cart 3:1 1
(integer) 102
127.0.0.1:6379> hincrby appid:openid:cart 3:1 -1
(integer) 101
127.0.0.1:6379> hincrby appid:openid:cart 3:1 -1
(integer) 100
127.0.0.1:6379> hincrby appid:openid:cart 3:1 -1
(integer) 99
如何将购物车信息存到Redis中?的更多相关文章
- Redis使用场景一,查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。
maven使用: <!--redis jar包--> <dependency> <groupId>redis.clients</groupId> < ...
- 【redis,1】java操作redis: 将string、list、map、自己定义的对象保存到redis中
一.操作string .list .map 对象 1.引入jar: jedis-2.1.0.jar 2.代码 /** * @param args */ public s ...
- [python]mysql数据缓存到redis中 取出时候编码问题
描述: 一个web服务,原先的业务逻辑是把mysql查询的结果缓存在redis中一个小时,加快请求的响应. 现在有个问题就是根据请求的指定的编码返回对应编码的response. 首先是要修改响应的bo ...
- Java微信公众号开发----定时获取access_token并保存到redis中
本人原本是想做微信公众号菜单的创建修改删除等操作的,但是发现需要access_token,通过阅读文档,发现文档要求有以下几点: 1.access_token 获取后有效期是2小时 2.access_ ...
- 6、2、2 存到redis 中的验证码
还没有用到rabittmq @RequestMapping("/getYZM/{phone}") public Object getYZM(@PathVariable String ...
- scrapy实现自动抓取51job并分别保存到redis,mongo和mysql数据库中
项目简介 利用scrapy抓取51job上的python招聘信息,关键词为“python”,范围:全国 利用redis的set数据类型保存抓取过的url,现实避免重复抓取: 利用脚本实现每隔一段时间, ...
- redis中使用java脚本实现分布式锁
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/115.html?1455860390 edis被大量用在分布式的环境中,自 ...
- flink04 -----1 kafkaSource 2. kafkaSource的偏移量的存储位置 3 将kafka中的数据写入redis中去 4 将kafka中的数据写入mysql中去
1. kafkaSource 见官方文档 2. kafkaSource的偏移量的存储位置 默认存在kafka的特殊topic中,但也可以设置参数让其不存在kafka的特殊topic中 3 将k ...
- redis中key的归类
redis中可以使用前缀对key进行归类: 例如:key: ITEM_INFO:123456:BASE ITEM_INFO:123456:DESC 作用:方便进行管理 如果把二维表保存到redis中: ...
随机推荐
- VS调试dll详细过程记录
前言: 在我们写的程序中有时候调用dll,并且需要跟踪dll中的函数,此时直接调试调用dll的工程是 ...
- 纯干货:深度学习实现之空间变换网络-part2
https://www.jianshu.com/p/854d111670b6 纯干货:深度学习实现之空间变换网络-part1 在第一部分中,我们主要介绍了两个非常重要的概念:仿射变换和双线性插值,并了 ...
- Ubuntu16.04+cuda8.0rc+opencv3.1.0+caffe+Theano+torch7搭建教程
https://blog.csdn.net/jywowaa/article/details/52263711 学习中用到深度学习的框架,需要搭建caffe.theano和torch框架.经过一个月的不 ...
- airtest 记录
from airtest.core.api import * # 通过ADB连接本地Android设备 connect_device("Android:///") #安装待测软件a ...
- PyQt5-多窗口数据传输
#窗口之间数据传递(通过属性方式) from PyQt5.QtWidgets import QDialogButtonBox, QDateTimeEdit,QDialog,QComboBox,QTab ...
- log buffer space等待事件
最近,我们有台服务器在delete操作期间发现一直在等待log buffer space,其他节点就没与这个问题.经查,向重做缓冲区上写入重做记录的进程,为了确保拥有重做缓冲区内必要的空间,需要获得r ...
- ssh客户端连接报认证失败
最近有个应用在并发导出的时候,报错了ssh认证失败,原来串行的时候都正常,经查,可能是ssh连接数不够的原因,这个问题刚好之前有个java开发反馈过,linux默认的ssh连接数为10个. 解决如下: ...
- openstack cloud init set password
设置代理和password #!/bin/bash cd /home/ubuntu wget otcloud-gateway.bj.intel.com/script.tar.gz ]; then cu ...
- 【python014--字符串内置函数】
一.实现跨越多行的字符串 1.采用双引号实现 str1 = ""待我长发及腰,将军归来可好?此身君子意逍遥,怎料山河萧萧天光乍破遇,暮雪白头老寒剑默听奔雷,长枪独守空豪醉卧沙场君莫 ...
- c和c++main函数的参数
1.代码 int main(int argc,char **argv[]) { ; } 2.分析 argc:代码参数个数 argv:二级指针,很多个字符串,这里代表参数列表 3.分析 这个代码最终被编 ...