发表于: 2020-07-08 22:13:41

1 1320


今天完成的事情:Memcached算是弄好了。
明天计划的事情:缓存的应用
遇到的问题:1.昨天的自动安装,没有运行文件。干脆自己下载包安装。

2.解决telnet: connect to address 127.0.0.1: Connection refused的错误信息问题

由于telnet服务是由xinetd守护的,所以我们需要重新启动xinetd

service xinetd restart

收获:

Memcached源代码安装

https://blog.51cto.com/13728740/2293824

1.首先准备好安装包,上面链接里有安装包。关闭实验主机的防火墙功能,及selinux。

systemctl stop firewalld.service
setenforce 0

2.手动安装Libevent

Libevent是一款跨平台的事件处理接口的封装,可以兼容多个操作系统的事件访问。 Memcached的安装依赖于Libevent,因此需要先完成Libevent的安装。

yum install gcc gcc-c++ make -y #yum安装gcc编译环境包
解压软件包
tar -zxvf libevent-2.1.8-stable.tar.gz
tar -zxvf memcached-1.5.6.tar.gz
cd libevent-2.1.8-stable/
./configure --prefix=/software/local/libevent
make && make install
到此libevent安装完毕

3.安装Memcached

cd ../memcached-1.5.6/
./configure \
--prefix=/software/local/memcached \
--with-libevent=/software/local/libevent/ #指定libevent安装路径
make && make install

4.创建软连接,方便memcached服务

ln -s /software/local/memcached/bin/* /usr/local/bin/

红色的是我自己安装的路径,自己上传文件在那个路径下,就在哪个路径下操作,一般都是在/usr/local 下

5.启动服务

启动 memcached(-d:守护进程、-m:指定缓存大小为32M 、-p:指定默认端口11211 、 -u:指定 登陆用户为 root)

memcached -d -m 32m -p 11211 -u root
netstat -antp | grep memcached #查看启动监听端口

就是启动成功了。

6.连接memcached数据库

telnet HOST PORT

命令中的 HOST 和 PORT 为运行 Memcached 服务的 IP 和 端口。

说明连接成功了,可以操作了。

这里我没有安装telnet,所以又一通安装。

https://blog.csdn.net/doubleqinyan/article/details/80492421

顺便备注下今天用到的常用命令

查看软件是否卸载删除干净

1.查询是否安装了某个软件

rpm -qa | grep -i 软件名

2.删除已安装的软件包,根据第一步显示的软件包名,一个个删除

sudo rpm -e  -- 包名 #普通删除模式 

sudo rpm -e --nodeps 包名 #强力删除模式,如果用上面命令删除时,提示有依赖的其他文件,则用该命令可以对其进行强力删除。

查看端口号

netstat命令参数:

  -t : 指明显示TCP端口

  -u : 指明显示UDP端口

  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。

  -n : 不进行DNS轮询,显示IP(可以加速操作)

 netstat -tunlp //查看当前所有tcp端口·

netstat -ntulp | grep 80 //查看所有80端口使用情况·

查看一个服务有几个端口。比如要查看mysqld

ps -ef |grep mysqld

7.相关命令操作

存储命令

7.1 set语法和get的使用

如果set的key已经存在,则会更新原来key的值

set key flags exptime bytes [noreply] 

value 

参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
  • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
  • bytes:在缓存中存储的字节数
  • noreply(可选): 该参数告知服务器不需要返回数据
  • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value

  • STORED:保存成功后输出。
  • ERROR:在保存失败后输出。

7.2 add命令

如果 add 的 key 已经存在,则不会更新数据(过期的 key 会更新),之前的值将仍然保持相同,并且您将获得响应 NOT_STORED

7.3 replace 用于替换原来已经存在key的value值,如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED

7.4 append和prepend  都用于在存在的key后面追加数据

7.5 get命令获取值。gets命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空。

7.6 delete 删除命令

统计命令

7.7 stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。

https://www.runoob.com/memcached/memcached-stats.html详细的内容

8.Memcached在java中的应用

导入jar包。jar 包下载地址:spymemcached-2.10.3.jar

8.1连接实例和set命令的使用

public class MemcachedUtil {
public static void main(String[] args){
try {
// 连接本地的 Memcached 服务
           MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("120.25.222.150",11211));
System.out.println("Connection to server sucessful.");
// 存储数据
           Future fo = mcc.set("runoob", 900, "Free Education");

// 查看存储状态
           System.out.println("set status:" + fo.get());

// 输出值
           System.out.println("runoob value in cache - " + mcc.get("runoob"));

// 关闭连接
           mcc.shutdown();
} catch (Exception e) {
e.printStackTrace();
}
}
}



返回列表 返回列表
评论

    分享到