发表于: 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();
}
}
}
评论