使用memcached缓存 替代solr中的LRUCache缓存

前沿

在搜索引擎中,缓存被当做是不可缺少的部分,但是很多情况下,将缓存的实现过度依赖于分发服务器及webserver会很大程度上加重webserver 的负担,具体表现就是经常性的假死,拒绝服务,因此为了解放前端转发服务器,我们将使用solr + memcache后端搭档组合实现缓存。

前期准备条件:

点击下面的下载地址,将memcache必备的工具包和java类下载至本地

memcached-2.2.jar

spy-2.4.jar

下载地址:

http://solr-side.googlecode.com/files/solr-memcache.zip

操作步骤:

  • 将solr-memcache.zip解压到一个文件夹中,打开文件夹
  • 将solr-memcache文件夹下lib文件夹中的memcached-2.2.jar 和 spy-2.4.jar 剪切到solr项目中的lib文件夹下,并做好相关引用。
  • 将这个solr-memcahe文件夹中  src/main/java/org/apache/solr/search 中的 MemcachedCache.java 文件放至solr项目中指定的包的位置 :  org.apache.solr.search
  • 在solr项目中 org.apache.solr.search 找到DocSet.java
  • 使得 该文件中的 DocSetBase 类 实现 Serializable 接口以支持序列化。
  • 修改solrconfig.xml  文件,找到 queryresultCache 入口,将此节点注释掉,并新增以下节点:
  1. <queryResultCache
  2. class="solr.MemcachedCache"
  3. memcachedHosts="192.168.0.100,192.168.0.101:1234,192.168.0.103"
  4. expTime="21600"
  5. defaultPort="11211"
  6. keyPrefix=""/>

重启SOLR,打开solr的状态展示页面,看之前的LRUCache是否被memcacheCache替换掉

http://192.168.1.109:8080/solr/novel/admin/stats.jsp

view plaincopy

  1. name:  queryResultCache
  2. class:  org.apache.solr.search.MemcachedCache
  3. version:  1.0
  4. description:  MemcachedCache([192.168.1.109], defaultPort:11211, expTime:21600, keyPrefix:)
  5. stats:  lookups : 2
  6. hits : 0
  7. hitratio : 0.00
  8. inserts : 3
  9. evictions : 0
  10. size : 0
  11. warmupTime : 0
  12. cumulative_lookups : 2
  13. cumulative_hits : 0
  14. cumulative_hitratio : 0.00
  15. cumulative_inserts : 2
  16. cumulative_evictions : 0
  17. indexVersion : 0

参数注明

  • memcachedHosts:memcached服务器IP ,多个中间用“,”号隔开
  • expTime:  失效时间  (单位:秒)
  • defaultPort :memcached使用端口号
时间: 2024-08-05 07:50:41

使用memcached缓存 替代solr中的LRUCache缓存的相关文章

让App中加入LruCache缓存,轻松解决图片过多造成的OOM

上次有过电话面试中问到Android中的缓存策略,当时模糊不清的回答,现在好好理一下吧. Android中一般情况下采取的缓存策略是使用二级缓存,即内存缓存+硬盘缓存->LruCache+DiskLruCache,二级缓存可以满足大部分的需求了,另外还有个三级缓存(内存缓存+硬盘缓存+网络缓存),其中DiskLruCache就是硬盘缓存,下篇再讲吧! 1.那么LruCache到底是什么呢? 查了下官方资料,是这样定义的: LruCache 是对限定数量的缓存对象持有强引用的缓存,每一次缓存对象被

让App中增加LruCache缓存,轻松解决图片过多造成的OOM

上次有过电话面试中问到Android中的缓存策略,当时模糊不清的回答,如今好好理一下吧. Android中普通情况下採取的缓存策略是使用二级缓存.即内存缓存+硬盘缓存->LruCache+DiskLruCache.二级缓存能够满足大部分的需求了,另外还有个三级缓存(内存缓存+硬盘缓存+网络缓存),当中DiskLruCache就是硬盘缓存,下篇再讲吧! 1.那么LruCache究竟是什么呢? 查了下官方资料.是这样定义的: LruCache 是对限定数量的缓存对象持有强引用的缓存,每一次缓存对象被

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记6——Direct3D中的顶点缓存和索引缓存

第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物体模型的基本单元,而一个三角形有3个顶点,为了能够使用大量三角形组成三角形网格来描述物体,需要首先定义号三角形的顶点(Vertex),3个顶点确定一个三角形,顶点除了定义每个顶点的坐标位置外,还还含有颜色等其他属性. 在Direct3D中,顶点的具体表现形式是顶点缓存,顶点缓存保存了顶点数据的内存空

Android二级缓存之物理存储介质上的缓存DiskLruCache

 Android二级缓存之物理存储介质上的缓存DiskLruCache Android DiskLruCache属于物理性质的缓存,相较于LruCache缓存,则DiskLruCache属于Android二级缓存中的最后一级.通常Android缓存分为两级,第一级是内存缓存,第二级是物理缓存也即DiskLruCache.顾名思义,DiskLruCache就是将数据缓存到Android的物理介质如外部存储器存储卡.内部存储器存储卡上. 关于LruCache缓存即内存缓存,我在之前写过一系列文章

缓存机制总结(JVM内置缓存机制,MyBatis和Hibernate缓存机制,Redis缓存)

一.JVM内置缓存(值存放在JVM缓存中) 我们可以先了解一下Cookie,Session,和Cache Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你.具体来说Cookie机制采用的是在客户端保持状态的方案(保存客户浏览器请求服务器页面

solr中Cache综述

一.概述 Solr查询的核心类就是SolrIndexSearcher,每个core通常在同一时刻只由当前的SolrIndexSearcher供上层的handler使用(当切换SolrIndexSearcher时可能会有两个同时提供服务),而Solr的各种Cache是依附于SolrIndexSearcher的,SolrIndexSearcher存在则Cache生,SolrIndexSearcher亡则Cache被清空close掉.Solr在Lucene之上开发了很多Cache功能,从目前提供的Ca

大型网站架构系列:缓存在分布式系统中的应用(三)

本文是<缓存在分布式系统中的应用>第三篇文章. 上次主要给大家分享了,缓存在分布式系统中的应用,主要从不同的场景,介绍了CDN,反向代理,分布式缓存,本地缓存的常规架构和基本原理. 因为时间关于,原计划分享<缓存常见问题>的内容,没有讲.本次主要针对缓存的常见个问题,做一个介绍.主要有以下议题: 一.分享大纲 分享大纲 数据一致性 缓存高可用 缓存雪崩 缓存穿透 参考资料 分享总结 二.数据一致性 缓存是在数据持久化之前的一个节点,主要是将热点数据放到离用户最近或访问速度更快的介质

LruCache缓存

LruCache通常用于实现内存缓存,采用的缓存算法是LRU(Least Recently Used)即近期最少使用算法,其核心思想是:当缓存满的时候,会优先淘汰那些近期最少使用的缓存对象. 1.LruCache是Android 3.1提供的缓存类,在使用LruCache的时候建议采用support-v4兼容包中提供的LruCache,这样才能兼容Android 2.2版本. 2.LruCache是一个泛型类,内部采用一个LinkedHashMap以强引用的方式存储外界的缓存对象,当缓存满的时候

android 使用LruCache缓存网络图片

加载图片,图片如果达到一定的上限,如果没有一种合理的机制对图片进行释放必然会引起程序的崩溃. 为了避免这种情况,我们可以使用Android中LruCache来缓存下载的图片,防止程序出现OOM. 打开activity_main.xml作为程序的主布局,加入如下代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.an