设为首页 收藏本站
查看: 945|回复: 0

[经验分享] 如何使用memcache减轻数据库压力

[复制链接]

尚未签到

发表于 2017-4-16 06:35:38 | 显示全部楼层 |阅读模式
  Java高级群:224651178

  使用memcache分布式数据系统减轻数据库的压力,是用memcache的版本的是java_memcached-release_2.5.3.jar
  客户端下载地址:https://github.com/gwhalin/Memcached-Java-Client
  服务器端下载地址:http://jehiah.cz/projects/memcached-win32/
<wbr></wbr>

  代码如下:
package com.wzpmt;import java.util.ArrayList;import java.util.Date;import java.util.List;import com.danga.MemCached.MemCachedClient;import com.danga.MemCached.SockIOPool;public class MemCachedManager {// 创建全局的唯一实例protected static MemCachedClient mcc = new MemCachedClient();protected static MemCachedManager memCached = new MemCachedManager();// 设置与缓存服务器的连接池static {// 服务器列表和其权重String[] servers = { "127.0.0.1:11211" };Integer[] weights = { 3 };// 获取socke连接池的实例对象SockIOPool pool = SockIOPool.getInstance();// 设置服务器信息pool.setServers( servers );pool.setWeights( weights );// 设置初始连接数、最小和最大连接数以及最大处理时间pool.setInitConn( 5 );pool.setMinConn( 5 );pool.setMaxConn( 250 );pool.setMaxIdle( 1000 * 60 * 60 * 6 );// 设置主线程的睡眠时间pool.setMaintSleep( 30 );// 设置TCP的参数,连接超时等pool.setNagle( false );pool.setSocketTO( 3000 );pool.setSocketConnectTO( 0 );// 初始化连接池pool.initialize();// 压缩设置,超过指定大小(单位为K)的数据都会被压缩mcc.setCompressEnable( true );mcc.setCompressThreshold( 64 * 1024 );}/*** 保护型构造方法,不允许实例化!**/protected MemCachedManager(){}/*** 获取唯一实例.* @return*/public static MemCachedManager getInstance(){return memCached;}/*** 添加一个指定的值到缓存中.* @param key* @param value* @return*/public boolean add(String key, Object value){return mcc.add(key, value);}public boolean add(String key, Object value, Date expiry){return mcc.add(key, value, expiry);}public boolean replace(String key, Object value){return mcc.replace(key, value);}public boolean replace(String key, Object value, Date expiry){return mcc.replace(key, value, expiry);}/*** 根据指定的关键字获取对象.* @param key* @return*/public Object get(String key){return mcc.get(key);}public static void main(String[] args){MemCachedManager cache = MemCachedManager.getInstance();long startDate=System.currentTimeMillis();for (int i = 0; i < 10000*1000; i++) {cache.add("test"+i , "中国");}long endDate=System.currentTimeMillis();long nowDate=(endDate-startDate)/1000;System.out.println(nowDate);System.out.print( " get value : " + cache.get( "test" ));}}  
通过这个简单的例子,可以很快地上手。
  Java高级群:224651178

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-365164-1-1.html 上篇帖子: Memcache集群环境缓存解决方案 下篇帖子: java,reids,memcache,c,android技术视频学习网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表