使用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 入口,将此节点注释掉,并新增以下节点:
- <queryResultCache
- class="solr.MemcachedCache"
- memcachedHosts="192.168.0.100,192.168.0.101:1234,192.168.0.103"
- expTime="21600"
- defaultPort="11211"
- keyPrefix=""/>
重启SOLR,打开solr的状态展示页面,看之前的LRUCache是否被memcacheCache替换掉
http://192.168.1.109:8080/solr/novel/admin/stats.jsp
- name: queryResultCache
- class: org.apache.solr.search.MemcachedCache
- version: 1.0
- description: MemcachedCache([192.168.1.109], defaultPort:11211, expTime:21600, keyPrefix:)
- stats: lookups : 2
- hits : 0
- hitratio : 0.00
- inserts : 3
- evictions : 0
- size : 0
- warmupTime : 0
- cumulative_lookups : 2
- cumulative_hits : 0
- cumulative_hitratio : 0.00
- cumulative_inserts : 2
- cumulative_evictions : 0
- indexVersion : 0
参数注明
- memcachedHosts:memcached服务器IP ,多个中间用“,”号隔开
- expTime: 失效时间 (单位:秒)
- defaultPort :memcached使用端口号
使用memcached缓存 替代solr中的LRUCache缓存的更多相关文章
- 让App中加入LruCache缓存,轻松解决图片过多造成的OOM
上次有过电话面试中问到Android中的缓存策略,当时模糊不清的回答,现在好好理一下吧. Android中一般情况下采取的缓存策略是使用二级缓存,即内存缓存+硬盘缓存->LruCache+Dis ...
- 让App中增加LruCache缓存,轻松解决图片过多造成的OOM
上次有过电话面试中问到Android中的缓存策略,当时模糊不清的回答,如今好好理一下吧. Android中普通情况下採取的缓存策略是使用二级缓存.即内存缓存+硬盘缓存->LruCache+Dis ...
- Android-Universal-Image-Loader的缓存处理机制与使用 LruCache 缓存图片
讲到缓存,平时流水线上的码农一定觉得这是一个高大上的东西.看过网上各种讲缓存原理的文章,总感觉那些文章讲的就是玩具,能用吗?这次我将带你一起看过UIL这个国内外大牛都追捧的图片缓存类库的缓存处理机制. ...
- 阶段3 1.Mybatis_11.Mybatis的缓存_6 Mybatis中的一级缓存
Mybatis中的一级缓存和二级缓存 一级缓存: 它指的是Mybatis中SqlSession对象的缓存. 当我们执行查询之后,查询的结 ...
- 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记5——Direct3D中的顶点缓存和索引缓存
第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物 ...
- Android二级缓存之物理存储介质上的缓存DiskLruCache
Android二级缓存之物理存储介质上的缓存DiskLruCache Android DiskLruCache属于物理性质的缓存,相较于LruCache缓存,则DiskLruCache属于And ...
- 缓存机制总结(JVM内置缓存机制,MyBatis和Hibernate缓存机制,Redis缓存)
一.JVM内置缓存(值存放在JVM缓存中) 我们可以先了解一下Cookie,Session,和Cache Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cooki ...
- Mybatis的二级缓存、使用Redis做二级缓存
目录 什么是二级缓存? 1. 开启二级缓存 如何使用二级缓存: userCache和flushCache 2. 使用Redis实现二级缓存 如何使用 3. Redis二级缓存源码分析 什么是二级缓存? ...
- solr中Cache综述
一.概述 Solr查询的核心类就是SolrIndexSearcher,每个core通常在同一时刻只由当前的SolrIndexSearcher供上层的handler使用(当切换SolrIndexSear ...
随机推荐
- eclispe的使用
1.eclipse 有的时候,子类包都已经写了,这时候要添加一个父类包,如果在包结构下是添加不了的,这时候需要切换格式:
- 【eclipse插件开发实战】Eclipse插件开发2——SWT
Eclipse插件开发实战2--SWT 一.SWT简介 SWT(StandardWidget Toolkit) 标准小窗口工具箱,一开源的GUI编程框架,与AWT/Swing有相似的用处,eclips ...
- VR视频原理
VR视频,这里指的是沉浸式全景视频,基本场景是观影者戴上显示头盔(如cardboard),在其中通过头部的转动可以看到全景视频的每个方向的图像.同时也能听到来自各个方向的声音,声音也会随着头部的转动而 ...
- PhpStorm插件之Translation
安装插件 File->Setting->Pluugins 搜索 Translation 如何使用 安装完插件后,RESTART IDE 快捷键 Ctrl+Shift+Y OR 选 ...
- CString和CStringA之间的转换
使用UNICODE字符集编程时,总是需要使用那些不支持UNICODE的库,例如sqlite3,Lua等必须使用char*类型的.这个时候用CStringA是最好的. 另外CStringA与CStrin ...
- nginx 的启动、停止与重启
详解 ./nginx #打开 nginx nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx nginx -t #测试配置是否有语法错误 n ...
- Linux - 查看并修改当前的系统时间
转载自Linux系统查看当前时间的命令 查看和修改Linux的时区 查看当前时区 命令 : date -R 修改设置Linux服务器时区 方法 A 命令 : tzselect 方法 B 仅限于RedH ...
- Jquery | 基础 | 事件的链式写法
$(".title").click(function () { $(this).addClass("curcol").next(".content&q ...
- VLAN-4-在路由器上配置Trunk
VLAN Trunk技术可以用在路由器和主机上,也可以用在交换机上.路由器不支持DTP,所以工程师必须手动配置. 路由器Trunk需要使用子接口(在一个接口中实现多个vlan间的路由和通信),每个子接 ...
- css-原理详解
语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 选择器一般使用id或者class选择器,声明由{}包含,每条声明由一个属性和一个值组成. .city { float:left; ...