Redis训练营!

redis 是基于内存的数据库,因为出内存操作,而且还是单线程的所以处理效率会快很多。缺点首先至于内存。不适用于海量数据   。 其中常用的有5大数据类型

String  

     常用命令:set  get insr。看似是个字符串实际上还可以支持数值

     实现方式:默认存储方式就是一个字符串 但是遇到insr就会将类型转化为int

    应用场景:   session共享(二进制安全)。秒杀(redis用来限流 削峰)。计数。bitmap

 

List

    常用命令:  lpush

    应用场景:实现队列 

Hash

      实现方式:hashmap.
      应用场景: 聚集数据。对于数据变化不是很大的,并且访问次数比较多的。可以跑一个批处理 用流水号啊什么的作为一个                       key。加快了我们的查询速度

Set

  无序集合不可重复

  实现方式:底层就是可以为空的hashmap。

  应用场景:随机数  srandmenber.spop  还可以实现 交并差集。这个可以用来做一个推荐 
或者共同好友这样的

Zset

   有序不可重复

就可以做一些和排序有关的列表

 

Iothrad 在 redis 6.0+ 版本实现

 

持久化     就是将数据保存到磁盘  redis.conf

               RDB(快照)    速度快  丢失多

              AOF 慢  但是数据完整 因为一直都是append。

             如何解决持久化   快照 aof混合使用。先把数据写入aof文件里,

 

synchronized voliate


        普通对象内存存储布局。如何看?(palyout)
        markword     class pointer(类型指针)   insatance data(实例数据)  padding(对齐);
        包含hashcode  GC信息    锁信息。

缓存穿透

    指缓存和数据库都没有的数据,而用户不断发起请求。

   解决方案:   接口层增加校验,如用户鉴权校验。

                从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,              如30秒

缓存击穿

         缓存中没有但数据库中有的数据   

         解决方案:         设置热点数据永远不过期

缓存雪崩

          缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。

          解决方案:    缓存数据的过期时间设置随机。设置热点数据永远不过期。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值