存到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中?的更多相关文章

  1. Redis使用场景一,查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。

    maven使用: <!--redis jar包--> <dependency> <groupId>redis.clients</groupId> < ...

  2. 【redis,1】java操作redis: 将string、list、map、自己定义的对象保存到redis中

    一.操作string .list .map 对象 1.引入jar: jedis-2.1.0.jar   2.代码 /**      * @param args      */     public s ...

  3. [python]mysql数据缓存到redis中 取出时候编码问题

    描述: 一个web服务,原先的业务逻辑是把mysql查询的结果缓存在redis中一个小时,加快请求的响应. 现在有个问题就是根据请求的指定的编码返回对应编码的response. 首先是要修改响应的bo ...

  4. Java微信公众号开发----定时获取access_token并保存到redis中

    本人原本是想做微信公众号菜单的创建修改删除等操作的,但是发现需要access_token,通过阅读文档,发现文档要求有以下几点: 1.access_token 获取后有效期是2小时 2.access_ ...

  5. 6、2、2 存到redis 中的验证码

    还没有用到rabittmq @RequestMapping("/getYZM/{phone}") public Object getYZM(@PathVariable String ...

  6. scrapy实现自动抓取51job并分别保存到redis,mongo和mysql数据库中

    项目简介 利用scrapy抓取51job上的python招聘信息,关键词为“python”,范围:全国 利用redis的set数据类型保存抓取过的url,现实避免重复抓取: 利用脚本实现每隔一段时间, ...

  7. redis中使用java脚本实现分布式锁

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/115.html?1455860390 edis被大量用在分布式的环境中,自 ...

  8. flink04 -----1 kafkaSource 2. kafkaSource的偏移量的存储位置 3 将kafka中的数据写入redis中去 4 将kafka中的数据写入mysql中去

    1. kafkaSource 见官方文档 2. kafkaSource的偏移量的存储位置 默认存在kafka的特殊topic中,但也可以设置参数让其不存在kafka的特殊topic中   3   将k ...

  9. redis中key的归类

    redis中可以使用前缀对key进行归类: 例如:key: ITEM_INFO:123456:BASE ITEM_INFO:123456:DESC 作用:方便进行管理 如果把二维表保存到redis中: ...

随机推荐

  1. USB开发库STSW-STM32121文件分析(转)

    源: USB开发库STSW-STM32121文件分析

  2. Django模板系统 运算

    记下来,省得每次google 过滤器,变量的显示形式的改变 一.形式:小写 {{ name | lower }} 二.串联:先转义文本到HTML,再转换每行到 <p> 标签 {{ my_t ...

  3. sql 思路

    先 django 定好sql框架 再 sqlalchemy 根据框架写...

  4. Linux centos7下php安装cphalcon扩展的方法

    说明: 操作系统:CentOS7 php安装目录:/usr/local/php php.ini配置文件路径:/usr/local/php/etc/php.ini 运行环境:LNMP ,PHP7 .安装 ...

  5. linux的/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow—关于用户和组的配置文件

    1./etc/passwd  存储用户信息 [root@oldboy ~]# head /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bi ...

  6. python之字符编码(四)

    一.字符编码的使用: 1.文本编辑器 unicode----->encode-------->utf-8 utf-8-------->decode---------->unic ...

  7. sudo env

    $ sudo echo "Defaults        env_keep=\"PATH PYTHONPATH LD_LIBRARY_PATH CAFFE_ROOT\"& ...

  8. ORACLE 12c 配置PL/SQL 并登录

    一.安装12c简易客户端 下载:instantclient-basic-nt-12.2.0.1.0.zip 下载并解压到本地目录D:\app\instantclient_12_2 创建tns连接文件: ...

  9. 推荐 Net C# 逆向反编译四大工具利器

    参考:https://blog.csdn.net/kongwei521/article/details/54927689/

  10. topcoder srm 380 div1

    problem1 link 分类讨论.高度没有太大关系.主要看长度. problem2 link 二分答案$mid$.计算每种$card$不足的部分,加起来,小于等于$min(jokers,mid)$ ...