Hadoop入门之MemCached缓存

简介

Memcached是一个开源的,高性能的,内存分布式缓存系统。其用意是缓存结果,避免再次计算或者访问数据库,从而提高服务的效率。
Memcahced是基于内存的key-value存储,用来存储任意的小块的数据,包括序列化的对象,因为他是存储在内存中,所以访问快速,但是也决定了不可能存储太多的东西。因为他是分布式的所以可以在多台机器上配置,每一个server之间是不进行通讯的,所以不知道彼此存储的是什么东西。
而且Memcached是一种基于客户端的分布式缓存系统,意思是说它的路由算法是在客户端上,客户端来决定缓存到哪个一个服务器上。

安装与配置

Memcached 是基于libevent的所以我们要先装libevent(这个玩意是一个用C编写的高性能的通知库,具体的不用管它)。

  • 安装libevent
    首先我们先看看本地系统是不是已经自带了libevent: rpm -qa libevent
    rpm -qa 的意思查询所有rmp安装的package。
    如果已经安装了那么 rpm -e xx 删掉就可以了。
    如果你的Linux的系统可以联网,那么使用yum安装就可以了,
    yum install libevent libevent-deve
    我的机器是没有配置联网的所以我使用另外一种方式:首先下载gz包
    解压到当前目录:
tar -zxvf libevent-2.0.21-stable.tar.gz

配置安装路径

./configure --prefix=/root/training/libevent

编译之后并安装

make 
make install
  • 安装Memcached
    同样,如果可以联网的话 使用yum来安装
yum install memcached

不能联网就下载tar 下载地址
同样是先tar -zxvf 解压,不在赘述。
配置安装路径,并指明libevent的安装路径。

 ./configure --prefix=/root/training/memcached --with-libevent=/root/trainging/libevent

同样编译之后安装

make 
make install

到此memcached就安装好了

memcached没有提供可视化的操作界面,但是我们可以使用telenet来连接memcached,
首先需要启动Memcached,进入Memcached的安装目录的bin目录下,列出其帮助文档:

 ./memcached -h

-d是启动一个守护进程;
-m是分配给Memcache使用的内存数量,单位是MB;
-u是运行Memcache的用户;
-l是监听的服务器IP地址,可以有多个地址;
-p是设置Memcache监听的端口,,最好是1024以上的端口;
-c是最大运行的并发连接数,默认是1024;
-P是设置保存Memcache的pid文件。

./memcached -u root -d -m 256

指定root用户启动server,内存是256M
此时可以用用ps命令查看一下memcached进程

ps -ef|grep memcached

这里写图片描述

Memcached的操作

首先使用telnet 连接memcached,默认端口是11211

telnet 127.0.0.1 11211
  • set命令,用于保存数据,将value保存到指定的key中,如果已经存在则户覆盖掉原来的
set key1 0 0 4 
abcd

set后面的第一个key1表示的是键值对中的key,
第二参数表示是一个数字标志位一般是0,
第三个是参数表示存储的时间,单位是秒,0表示永久存储
第四个参数表示的字节数byte
最后一个表示的是value
这里写图片描述
上面有个STORED表示的是保存成功,如果保存失败会出现一个ERROR。

  • add命令也是保存,但是如果key已经存在,则不会覆盖原来的:
    这里写图片描述
    可以看到如果key已经存在了,则会NOT_STORED表示保存不成功

  • replace替换已经存在的key的value值,如果key不存在的话,同样报NOT_STORED

replace key2 0 0 5
12345
STORED
get key2
VALUE key2 0 5
12345
END
ERROR
replace key3 0 0 5
12345
NOT_STORED
  • append向已经存在的key的value后面追加数据
  • prepend向已经存在的key的value的前面追加数据
    这里写图片描述
  • get命令用于查找
  • gets命令用于查找多个key
    这里写图片描述

  • delete删除
    这里写图片描述

  • incr用于自增,decr用于自减
    这里写图片描述

  • stats用于统计各种信息
    这里写图片描述
    简直不要太多

    JAVA API连接Memcached

    下载jar包的 连接,如果下载不下来可以下载我上传的倒CSDN的
    https://download.csdn.net/download/u010741032/10594260
    这个JAVA API 操作很简单:

public static void main(String[] args) {
        try {
            MemcachedClient client = 
            new MemcachedClient(new InetSocketAddress("192.168.246.111", 11211));
            client.set("key3", 0, "123456778");
            System.out.println(client.get("key3"));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

默认端口是11211,如果多个server实例的话,可以传一个InetSocketAddress的list给客户端。

先到这儿下次再介绍存储原理,和路由规则。

欢迎关注我的微信号: manong_xiaodong
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟红尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值