Mac上安装memcache

What is Memcached?

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.

摘录自memcache 官网 

1.下载安装

有一行这个格外注意 使用debian和ubuntu 和redhat centos 需要 安装libevent-level

Mac上并没有说明  可能 也需要安装 

1.1 先将memcache安装包下载下来 下载的版本为1.6.9(当前最新版)

1.2 解压

tar -zxvf ./memcached-1.6.9.tar.gz

1.3 安装 configure 指定安装目录/usr/local/develop/memcached-1.6.9 可以换成其他的

cd memcached-1.6.9

./configure --prefix=/usr/local/develop/memcached-1.6.9 && make && make install

本来已经搓搓手等安装好的时候 突来 突来 就来一个报错

缺少了libevent 和之前描述一样   之前并没有安装 所以提示这个错 也不意外

1.4 下载libevent  见官网 libevent

本文下载的 

1.5 解压

tar -zxvf libevent-2.0.22-stable.tar.gz

1.6 安装libevent 安装配置目录为 /usr/local/libevent-2.0.22

cd libevent-2.0.22-stable

./configure --prefix=/usr/local/libevent-2.0.22 && make && make install

1.7再次安装memcached 

cd memcached-1.6.9

./configure --prefix=/usr/local/develop/memcached-1.6.9 && make && make install

1.8安装 完成 

 安装成功

1.9.运行一发 试试

cd /usr/local/develop/memcached-1.6.9/

./memcached -d -p 11211 -u root -m 1024

常用参数如下 按需修改

-d选项是启动一个守护进程,
-m是允许memcached最大内存用量,单位M (默认: 64 MB) 这里指定为1024

-u是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。
-l是绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)
-p是 设置TCP端口号(默认设置为: 11211)

-U <num> UDP监听端口(默认: 11211, 0 时关闭)

-c选项是最大运行的并发连接数,默认是1024,这里设置了256
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
停止Memcache进程:
# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,但是端口不能重复

附录

1.查看memcache的进程号(根据进程号,可以结束memcache服务:“kill -9 进程号”)

ps -ef | grep memcached

2.0 使用Java版本client 测试一波 

<dependency>
    <groupId>com.whalin</groupId>
    <artifactId>Memcached-Java-Client</artifactId>
    <version>3.0.2</version>
</dependency>
public static void main(String[] args) {
    //memcached服务器
    String[] servers = {"127.0.0.1:11211"};
    //设置连接池可用cache服务器的权重,和server数组的位置一一对应
    Integer[] weights = {3};
    SockIOPool pool = SockIOPool.getInstance();
    //设置memcached服务器
    pool.setServers(servers);
    //设置memcached服务器权重
    pool.setWeights(weights);
    //设置容错开关设置为TRUE,当当前socket不可用时,程序会自动查找可用连接并返回,否则返回NULL,默认状态是true,建议保持默认
    pool.setFailover(true);
    //设置开始时每个cache服务器的可用连接数
    pool.setInitConn(10);
    //设置每个服务器最少可用连接数
    pool.setMinConn(5);
    //设置每个服务器最大可用连接数
    pool.setMaxConn(250);
    /*
      设置连接池维护线程的睡眠时间
      设置为0,维护线程不启动
      维护线程主要通过log输出socket的运行状况,监测连接数目及空闲等待时间等参数以控制连接创建和关闭。
     */
    pool.setMaintSleep(30);
    /*
      设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true)
     */
    pool.setNagle(false);
    /*
      设置socket的读取等待超时值
     */
    pool.setSocketTO(3000);
    /*
      设置连接心跳监测开关。
      设为true则每次通信都要进行连接是否有效的监测,造成通信次数倍增,加大网络负载,因此该参数应该在对HA要求比较高的场合设为TRUE,默认状态是false。
     */
    pool.setAliveCheck(true);
    /*
      设置完pool参数后最后调用该方法,启动pool。
     */
    pool.initialize();

    MemCachedClient memCachedClient = new MemCachedClient();
    boolean set = memCachedClient.set("1", 1);
    System.out.println("set: " + set);

    Object o = memCachedClient.get("1");
    System.out.println("oL: " + o);
}

 正文结束

参考博主文章 

https://www.iteye.com/blog/stephen830-2009678

MemcachedClient 使用说明 - 漫步枫 - 博客园

番外篇

当安装libevent 2.1.12版本时 会提示 找不到 openssl 

 错误截图如下 

本地的openssl 是有的

 有知道的各位可以联系我

猜你喜欢

转载自blog.csdn.net/a15835774652/article/details/118607816