Memcached

作者: 米刀灵 | 来源:发表于2016-08-11 10:47 被阅读50次

许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。
memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。

Paste_Image.png
参考

安装
1.由于memcached是基于libevent的,因此需要安装libevent,libevent-develyum install -y libevent libevent-devel
2.安装Memcachedyum -y install memcached
3.验证安装memcached -h
4.启动service memcached start 查看状态service memcached status
5.可在/etc/sysconfig/memcached中修改端口号等。重启memcachedservice memcached restart


整合mybatis
1.导入jar包

<dependency>
    <groupId>org.mybatis.caches</groupId>
    <artifactId>mybatis-memcached</artifactId>
    <version>1.0.0</version>
</dependency> 

2.在mapper.xml文件中加入<cache>

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.tmg.dao.mybatis.performance.ChannelDailyDeltaDao" >
  <cache type="org.mybatis.caches.memcached.MemcachedCache" />
  <resultMap id="BaseResultMap" type="com.tmg.entity.performance.test.ChannelDailyDelta" >

    ...

3.memcache的配置是根据classpath下的 /memcached.properties 配置的,如果没有使用默认

org.mybatis.caches.memcached.servers=115.29.251.196:11211,101.201.152.172:11211  //可配置多个地址
org.mybatis.caches.memcached.expiration=43200
...

参考,但这种方式不适合那种需要对 Cache 进行精细控制的场景。


memcache命令

  • 连接memcache telnet localhost 11211

  • 查看健康情况stats

    Paste_Image.png
    Paste_Image.png
  • 查看内存分配stats slabs,memcache内存分配和LRU可参考这里这里

  • 查看所有缓存项stats items,"STAT items:"后面那个数字就是slab id

    Paste_Image.png
  • 查询某个slab下所有的key,列出n条(列出全部为0)。stats cachedump <slab的id> <条数>,stats cachedump 6 0

  • 添加,删除

Paste_Image.png Paste_Image.png
  • 清空缓存flush_all

要点:
不能进行精细控制。


参考

相关文章

网友评论

      本文标题:Memcached

      本文链接:https://www.haomeiwen.com/subject/pxuzjttx.html