zoukankan      html  css  js  c++  java
  • 【Redis】String应用场景

    • 单值缓存
    SET key value
    
    GET key
    • 对象缓存
    SET user:1 value(json格式数据)
    
    MSET user:1:name value1  user:1:balance value2
    
    MGET user:1:name  user:2:balance
    为什么不用hash存储呢?
    
    如果想获取一个对象数据(user1)的name,那么需要把user1的所有数据拿出,在单独获取name;如果用STRING格式,那么只需要取出user:1:name数据即可。
    • 分布式锁
    线程1:SETNX product:10001 true //返回1代表锁获取成功
    
    线程2:SETNX product:10001 true //返回0代表所获取失败
    #减库存方法:
    SETNX product:1001 true
    查询商品1001的库存
    减库存
    重新把减完剩余的库存更新回数据库
    del product:1001
    • 计数器(原子操作)
    #计算浏览量和阅读量等

    INCR article:readcount:{文章id} GET article:readcount:{文章id}
    • Web集群session共享
    Spring Session + Redis 实现Session共享
    • 分布式系统全局序列号
    #分库分表情况下,若采用mysql自增ID,那么可能会产生重复,所以可以采用Redis记录全局序列号
    
    INCRBY orderId 1000 //redis批量生成序列号提升性能
    学而不思则罔 思而不学则殆 !
  • 相关阅读:
    yum之镜像加速
    MySQL5.7安装
    销售订单的批量审批/反审
    MM06E005 EXIT_SAPMM06E_013 采购订单增强
    直接用代码查找增强Enhancement
    SAP相关业务表
    模拟会计凭证审批 OO ALV(屏幕跳转、定位行数据、审批按钮)
    spark 和 fink
    说说spark
    golang server端的epoll
  • 原文地址:https://www.cnblogs.com/boluopabo/p/12835281.html
Copyright © 2011-2022 走看看