使用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 ...
随机推荐
- 将java项目打包成jar包,之后在制作成可执行的exe文件
1.利用eclipse选择 2.利用ex4j,详情见百度教程http://jingyan.baidu.com/article/00a07f38aad55182d128dc4c.html
- Python使用Timer实现验证码功能
from threading import Timer import random class Code: def __init__(self): self.make_cache() def make ...
- C#读写Access数据库、表格datagridview窗体显示代码实例
C#读写Access数据库.表格datagridview窗体显示代码实例 最近项目中用到C#对于Access数据库表读写.mdb操作,学习了下相关的东西,这里先整理C#对于Access数据库的操作,对 ...
- 微信小程序开发之修改和获取变量的值
在小程序开发过程中有两种变量,一种是定义在app,js里面的globalData定义的全局变量,另一种是在各个页面app,data里面的定义的变量. 一:全局变量的定义,获取值,赋值,修改 app.j ...
- ThinkPHP3.2.3中,配置文件里配置项的读取
在ThinkPHP3.2.3的版本中,配置项的读取,有两种情况. 是在PHP文件或者在PHP代码中的读取方法为C函数,例如:C('配置项的名称'); 在HTML模板中的读取方法为,例如{$Think. ...
- [WIP]用已有db进行rails开发
创建: 2019/01/16 晚点补上 https://qiita.com/edo1z/items/a0bf22b294406f00ec7c https://qiita.com/kentosasa/i ...
- 【WIP】Swift4 闭包
创建: 2018/06/05 闭包的声明 闭包的概要 { (参数表) -> 型 in { ... } ● 参数不可以带默认值 ● 参数不可以带标签 ● 定义闭包并直接呼出必须要被代入 {re ...
- 基于thinkphp5的Excel上传
涉及知识点: thinkphp5.0: excel上传: mysql建立新表(基本的create语句): mysql ignore(避免重复插入): 主要功能: 通过在视图中上传excel文件,在my ...
- UnityEngine中Animator相关类的说明
---------------------------------------------------------------------- Animator 这个单独写,比较多 AnimationC ...
- 洛谷CF895C Square Subsets(线性基)
洛谷传送门 不知道线性基是什么东西的可以看看蒟蒻的总结 题意: 给你n个数,每个数<=70,问有多少个集合,满足集合中所有数相乘是个完全平方数(空集除外) 题解: 完全看不出这玩意儿和线性基有什 ...