缓存主要用来存放那些读写比很高、很少变化的数据,如商品的类目信息,热门词的搜索列表信息,热门商品信息等。应用程序读取数据时,先到缓存中读取,如果读取不到或数据已失效,再访问数据库,并将数据写入缓存。
缓存的本质是一个内存Hash 表,网站应用中,数据缓存以一对Key、Value 的形式存储在内存Hash表中。通过计算KV对中Key的HashCode对应的Hash表索引,可快速访问Hash表中的数据。
许多语言支持获得任意对象的HashCode,可以把HashCode理解为对象的唯一标示符 ,Java语言中Hashcode方法包含在根对象Object中,其返回值是一个 Int。然后通过Hasheode计算Hash表的索引下标,最简单的是余数法,使用Hash表数组长度对Hashcode 求余,余数即为Hash表索引,使用该索引可直接访问得到Hash表中存储的KV对。Hash表是软件开发中常用到的一种数据结构,其设计思想在很多场景下都可以应用。
,