redis采坑

1,redis使用要点

例子1 用户发起一次请求,如果发现redis中没有的话,就从数据库里查询,并把查询结果放入缓存中,这样用户下次请求的时候就可以直接从redis中获取了。

这个思路在用户并发访问少的时候是成立的,但是在高并发的情况下就会出现问题。

原因:多个用户访问的时候同时请求进入redis,同时返回空结果,同时查询数据库,同时插入数据库。就会造成重复插入的问题。

例子2 以hash为例 ,假设“user”有两个属性,id,name这时候把对象序列化放入redis中,以userId为key,以name为field.然后增加用户属性age;

以userId为key name为value 去redis查询 把查询的结果反序列化封装成新的对象,在封装过程中,由于age对象不存在,就导致了id,和name也无法映射,从而返回的对象为null,

结果就是查询结果为null 再次查询数据库 把结果放入redis中,从而redis中有了两个user 他们们的区别仅仅是一个有age一个没有

接下来就引出了两个问题

1,如何批量获取list长度,例如key为 class_1,class_2,class_3 其中class_1中有4个学生,class_2中有3个学生,class_3中有三个学生,怎样才能找出人数大于3的班级呢?

2,如何把class_1,class_2,class_3一起清除?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,087评论 2 27
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,087评论 19 139
  • 近两年OTA酒店预订平台的火爆,加上移动互联网的快速发展,手机移动端预订住宿,超过了酒店线下预订数量。 民宿经营过...
    张生啊阅读 1,456评论 0 0
  • 2017年8月31日,是我转正第一天,看着过去一个月的工作成就,和领导侃侃而谈,下个月要怎么怎么做,达成什么样的目...
    astak3阅读 203评论 2 0
  • 2017年的最后一天 2017年福州飞往桂林的最后航班 开始滑跑 我穿云而上 一束灯光打在特朗斯特罗姆的...
    武夷闲客阅读 298评论 2 5