• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Redis如何在项目中合理使用经验分享

    概述

    Redis作为一款性能优异的内存数据库,在互联网公司有着多种应用场景,本文将介绍Redis如何在项目中合理使用。

    背景

    基本数据类型

    字符串(strings)

    1、string 的过期时间在重新设置值之后会被清除

    127.0.0.1:6379> set hello 3
    OK
    127.0.0.1:6379> get hello
    "3"
    127.0.0.1:6379> ttl hello
    (integer) -1
    127.0.0.1:6379> expire hello 3000
    (integer) 1
    127.0.0.1:6379> set hello 4
    OK
    127.0.0.1:6379> ttl hello
    (integer) -1

    2、设置 string 类型的值可以覆盖任何其他类型

    127.0.0.1:6379> sadd settest 1,2
    (integer) 1
    127.0.0.1:6379> type settest
    set
    127.0.0.1:6379> set settest hello
    OK
    127.0.0.1:6379> type settest
    string
    127.0.0.1:6379> sadd settest a,b
    (error) WRONGTYPE Operation against a key holding the wrong kind of value

    Redis lists 基于 Linked Lists 实现。头尾操作极速,检索较慢

    有序集合的排序默认按照字典序排列

    应用场景

    string

    不管是简单和复杂的数据都可以直接转为string存储。

    key: active:spring2019:title value:"2019春节活动" 操作:set

    商品信息,省市区信息,活动配置等一系列不常变化的冷数据缓存

    非常热门数据的缓存,游戏排行,后台每秒更新一次数据

    2019春节活动参加人数

    key: active:spring2019:total value:3045 操作:incr

    一个人一天只能进行一次签到

    key:active:checkin:userId:10000:day:20190101 value:签到时间戳 操作:expire

    下面的代码不严谨,nx 可以放并发

    127.0.0.1:6379> set lockkey 1 nx
    OK
    127.0.0.1:6379> set lockkey 1 nx
    (nil)

    list

    push,pop

    push,pop

    阻塞式访问 BRPOP 和 BLPOP 命令

    set

    2019春节活动参加人数

    key: active:spring2019:users value:100010,10020 操作:很多

    用户标签

    商家标签

    春节活动一共有 abcde 5个任务,用户A已经完成a,b,用户B已经完成 c,d

    用户A,用户B 都完成的任务

    用户A,用户B 任一完成的任务

    用户A还没有完成的任务

    从礼品库 set 中随机获得一个礼品

    hash

    用户在活动期间一共获得了不同种类奖品数量

    key:active:spring:g'ifts:user:10010 value:{"giftA":2,"giftB":5} 操作:很多

    可以直接对 giftA 执行 incr 操作

    zset

    用户消费排行,点赞排行等

    key:active:spring:star:rank value:用户ID,score:点赞数量 操作:很多

    根据分数获取 top 10

    查询某个用户的分数

    查询 得分在90-100 之间的用户

    有时候我们的得分并不是由某一项业务值决定的,可能是由两项业务值来排序的,比如先看用户的实际得分,在看用户等级,那么我们在设计score的时候可以用小数点之前的值表示得分,小数点之后的值表示等级,如果有其他特殊要求,还可以考虑得分加上某个极大值来处理。

    注意事项

    不要用list存大量数据并检索

    判断用户有没有参加应该用set,不应该每个用户一个key

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • SpringBoot项目中使用redis缓存的方法步骤
    • 在ssm项目中使用redis缓存查询数据的方法
    • SpringBoot+Mybatis项目使用Redis做Mybatis的二级缓存的方法
    上一篇:关于Redis你可能不了解的一些事
    下一篇:Redis字符串对象实用笔记
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Redis如何在项目中合理使用经验分享 Redis,如,何在,项,目中,合理,