• CentOS安装卸载memcache及JAVA示例


     
    原文地址:http://www.cnblogs.com/zhongshengzhen/
     
    先安装libevent,memcached依赖libevent的lib
    [root@VM_64_81_centos download]#  wget http://www.monkey.org/~provos/libevent-1.2.tar.gz
    [root@VM_64_81_centos download]#  tar zxvf libevent-1.2.tar.gz
    [root@VM_64_81_centos download]# cd libevent-1.2
     
    设置安装目录
    [root@VM_64_81_centos libevent-1.2]# ./configure --prefix=/usr/
     
    安装
    [root@VM_64_81_centos libevent-1.2]# make && make install
     
     测试是否安装成功
    [root@VM_64_81_centos memcached-1.2.0]#  ls -al /usr/lib | grep libevent 
    lrwxrwxrwx   1 root root     21 Jan 14 17:47 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
    -rwxr-xr-x   1 root root 264056 Jan 14 17:47 libevent-1.2.so.1.0.3
    -rw-r--r--   1 root root 430396 Jan 14 17:47 libevent.a
    -rwxr-xr-x   1 root root    814 Jan 14 17:47 libevent.la
    lrwxrwxrwx   1 root root     21 Jan 14 17:47 libevent.so -> libevent-1.2.so.1.0.3
     
     
    安装memcache
    Memcache是一个hash表形式的缓存服务。用户缓存数据达到提供响应效率和处理高并发的情况。
    [root@VM_64_81_centos download]# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz
    [root@VM_64_81_centos download]# tar zxvf memcached-1.2.0.tar.gz
    [root@VM_64_81_centos download]#cd memcached-1.2.0
    [root@VM_64_81_centos memcached-1.2.0]# ./configure -with-libevent=/usr
    [root@VM_64_81_centos memcached-1.2.0]# make
    [root@VM_64_81_centos memcached-1.2.0]# make install
     
    测试是否安装成功
    [root@VM_64_81_centos memcached-1.2.0]#  ls -al /usr/local/bin/mem* 
    -rwxr-xr-x 1 root root 113188 Jan 14 17:51 /usr/local/bin/memcached
    -rwxr-xr-x 1 root root 117535 Jan 14 17:51 /usr/local/bin/memcached-debug
     
    启动memcached 
    [root@a ~]# /usr/local/bin/memcached -d -m 512 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
    root 用户名
    512缓存大小512M
    192.168.137.33 本机ip
    11211分配的端口
    256是连接数
     
     
    SPRINGMVC配置memcached
    #######################设置Memcached服务器参数#######################
    #设置服务器地址
    memcached.server=目标服务器ip:11211  #该端口号默认为11211
    #容错
    memcached.failOver=true
    #设置初始连接数
    memcached.initConn=20
    #设置最小连接数
    memcached.minConn=10
    #设置最大连接数
    memcached.maxConn=250
    #设置连接池维护线程的睡眠时间
    memcached.maintSleep=3000
    #设置是否使用Nagle算法(Socket的参数),如果是true在写数据时不缓冲,立即发送出去
    memcached.nagle=false
    #设置socket的读取等待超时时间
    memcached.socketTO=3000
    #设置连接心跳监测开关
    memcached.aliveCheck=true
     
    卸载memcached
    1.结束memcached进程
    # killall memcached

    2.删除memcached目录及文件
    # rm -rf /usr/local/memcached
    # rm -f /etc/rc.d/init.d/memcached

    3.关闭memcached开机启动
    # chkconfig memcached off

    4.把memcached移出开机启动
    # chkconfig --del memcached
     
    错误说明:
    1、[root@VM_64_81_centos memcached-1.2.0]# /usr/local/bin/memcached -d -m 512 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid

    /usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory

    解决:
    原因是memcached在/usr/lib/找不到文件,因而设置一个软连接如下:
    [root@VM_64_81_centos lib]# ln -s /usr/lib/libevent-1.2.so.1  /usr/lib64/
     
     spring+java测试Memcache
    spring配置:

    <bean id="testCached" class="com.danga.MemCached.MemCachedClient">
    <constructor-arg><value>neeaMemcachedPoolUserLogin</value></constructor-arg>
    </bean>
    <bean id="memcachedPooluserLogin" class="com.danga.MemCached.SockIOPool" factory-method="getInstance"
    init-method="initialize" destroy-method="shutDown">
    <constructor-arg><value>neeaMemcachedPoolUserLogin</value></constructor-arg>
    <property name="servers">
    <list>
    <value>127.0.0.1:11211</value>
    </list>
    </property>
    <property name="initConn"><value>20</value></property>
    <property name="minConn"><value>10</value></property>
    <property name="maxConn"><value>800</value></property>
    <property name="maintSleep"><value>30</value></property>
    <property name="nagle"><value>false</value></property>
    <property name="socketTO"><value>3000</value></property>
    </bean>

    JAVA代码:

    @Component
    public class SysCacheHelper {
    @Autowired
    @Qualifier("testCached")
    private MemCachedClient cache;

    public boolean setSysCache(int categoryId, TSysConfig sysConfig){
    return cache.set(Constants.SYS_PREFIX + categoryId, sysConfig, LoginedCacheHelper.get3DayCalendarTime(Constants.SYS_CACHE_EXPIRED_DAY));
    }
    public TSysConfig getSysCache(int categoryId){
    return (TSysConfig)cache.get(Constants.SYS_PREFIX + categoryId);
    }
    public boolean removeSysCache(int categoryId){
    return cache.delete(Constants.SYS_PREFIX + categoryId);
    }
    }

    可以调用方法查看memcached中的内容。

    示例代码只是摘录重要片段。

     
  • 相关阅读:
    Day10
    Python pyspider 安装与开发
    深入理解ES6之《块级作用域绑定》
    深入理解ES6之《扩展对象》
    这些特效对于学习前端我们很有用
    算法之旅 | 选择排序法
    JavaScript读取剪贴板中的表格生成图片
    深入理解ES6之《ES7》
    深入理解ES6之《用模块封装代码》
    php://input,$_POST,$HTTP_RAW_POST_DATA区别
  • 原文地址:https://www.cnblogs.com/zhongshengzhen/p/memcached.html
Copyright © 2020-2023  润新知