码迷,mamicode.com
首页 > 其他好文 > 详细

Redis学习总结

时间:2018-12-17 02:31:40      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:value   穿透   perl   pre   rem   数据   str   syn   编写   

Redis

简介

Redis全名是Remote Dictionary Server,使用ANSI C语言编写,属于NoSQL数据库。Redis可用作分布式缓存、分布式锁。Redis是内存数据库,也可以持久化。

数据类型

数据模型是key-value,key只能是String,value支持多种类型:String、List、Set、Sort Set、Hash、Bitmap、HyperLogLog。

特点

  • Redis支持数据的持久化,重启的时候可以再次加载进行使用;
  • Redis的value支持多种类型,适用于更广泛的应用场景;
  • Redis支持数据的备份,即Master-Slave模式;
  • Redis主进程是单线程工作,所有操作是原子性的,多个操作支持事务;
  • Redis的性能优越,读速度达到110000次/s,写速度达到81000次/s,key和value的大小限制均为512M;
  • 还支持Publish/Subcribe、通知、key老化逐出等特性。

持久化机制

有两种方式,在redis.conf中配置

  • RDB快照,默认方式。

    save 300 10:在300秒之后,如果至少有10个key发生变化,就触发BGSAVE命令创建快照
  • AOF(Append-Only File),实时性更好。

    appendonly yes:开启
    
    三种AOF持久化方式:
    
    appendfsync always:每次数据修改都写
    
    appdenfsync everysec:每秒写一次(推荐)
    
    appendfsync no:让操作系统决定何时写

老化机制

Redis支持设置key的过期时间,对过期的key删除方式:

  • 定期删除,周期100ms,随机抽取设置过期时间的key
  • 惰性删除,查询key时删除

如果定期删除漏掉了很多过期key,也没查询这些key,就不会删除。Redis支持配置最大内存,当内存不够用时,通过数据淘汰策略删除,支持以下6种淘汰策略:

  • volatile-lru
  • volatile-ttl
  • volatile-random
  • allkeys-lru
  • allkeys-random
  • no-enviction 默认

使用缓存常见的问题

  • 缓存被穿透

    解决方法:

    1. 缓存空值,设置过期时间不超过5分钟
    2. 布隆过滤器

Redis学习总结

标签:value   穿透   perl   pre   rem   数据   str   syn   编写   

原文地址:https://www.cnblogs.com/moguxiong/p/10017773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!