Redis 简要描述:
1. Redis 是啥 ?
Redis 英文名称全称为: Remote Dictionary Server ,中译为远程字典服务器。 是一款区分于磁盘数据库如(Mysql)的采用Key-Value键值对的字典结构的缓存数据库。
2. Redis有什么作用?
Redis作为一款内存数据库,其最大的有点就是高速,对于那些高频访问的数据,进行加缓存。Redis加载缓存的时候使用的LRU机制,对于热点数据将会持续保留,其他的将会被淘汰。
Redis涉及到的LRU简要源码解析算法实现:
1 package com.mysql.jdbc.util;
2
3 import java.util.LinkedHashMap;
4 import java.util.Map.Entry;
5
6 public class LRUCache extends LinkedHashMap {
7 private static final long serialVersionUID = 1L;
8 protected int maxElements;
9
10 public LRUCache(int maxSize) {
11 super(maxSize, 0.75F, true);
12 this.maxElements = maxSize;
13 }
14
15 protected boolean removeEldestEntry(Entry eldest) {
16 return this.size() > this.maxElements;
17 }
18 }
注解: Lru算法使用Java jdk提供的LinkedHashMap实现
1 package com.hbut.util; 2 3 import java.util.LinkedHashMap; 4 import java.util.Map; 5 6 /** 7 * @Author XiJun.Gong 8 * @DATE 2016/6/11. 9 * aim: com.hbut.util 10 */ 11 public class Lru extends LinkedHashMap { 12 private static final long serialVersionUID = 1L; 13 private int maxElements = 5; //default size is 5 14 15 public int getMaxElements() { 16 return maxElements; 17 } 18 19 public void setMaxElements(int maxElements) { 20 this.maxElements = maxElements; 21 } 22 23 /** 24 * if size > maxElements remove this old entry and 25 * add new entry 26 * @param eldest 27 * @return true or false 28 */ 29 protected boolean removeEldestEntry(Map.Entry eldest) { 30 31 return size() > this.maxElements; 32 } 33 }