环境搭建
上一次我写博客的时候在Fedora上安装的redis,这次我在VMware上安装了Centos7。系统安装我就略过了,不会的切腹谢罪。这里只提醒一点,在选择网络连接时,选择桥接模式,为的是给VM上的centos一个独立的IP分配,这样我待会方便用xshell模拟远程登录服务器。
对了,别忘了,用ifconfig命令看看VM的IP地址。
[admin@localhost ~]$ ifconfigeno16777736: flags=4163mtu 1500 inet 192.168.0.104 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::20c:29ff:fe1b:facc prefixlen 64 scopeid 0x20 ether 00:0c:29:1b:fa:cc txqueuelen 1000 (Ethernet) RX packets 1287 bytes 87821 (85.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 157 bytes 13620 (13.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
当然,你必须确保这时候Centos上的ssh服务是存在并开着的,因为我们一会儿要用xshell通过ssh协议登录。
netstat -ap | grep ssh
注意:这里因为我其实已经用xshell登录,所以你可以看到上图中第二行结果,一个已经建立的在192.168.0.4(VM主机-CENTOS服务器)和我的PC通过ssh进行的连接。不然只会有服务ssh代理服务在。
然后用xshell在本地windows上登录VM服务器。
新建连接和打开连接的按钮在工具栏上,就这俩按钮。
然后把VM的IP地址写入,协议选择SSH,相应的,其端口号默认22。
连接之后,会提示输入VM的系统密码等,之后xshell界面显示:登陆成功
提示:如果这时候,你发现连不上VM,那么,排查和解决问题的步骤如下:
你先ping下VM是否连通。如果不连通,说明你的VM网络配置有问题,比如VM的网络适配器的桥接模式是否设置了。
如果正常ping到,再看看centsOS系统的ssh是否安装。如果没有安装,则用yum装一下。如果安装了,则先将ssh服务启动起来,命令网上搜吧,我这里就不啰嗦了。
编译安装redis
言归正传,安装redis的方式是通过官网下载redis源码,然后在VM的Centos上编译,然后部署和配置等等。
官网上下载个redis3.2,还是stable的release,时间都去哪了TT,咳咳。。。
解压redis源码安装包
[admin@localhost Downloads]$ tar -zxvf redis-3.2.3.tar.gz
如果,你有centos的完整安装光盘镜像,也可以利用其中的gcc相关的各个资源包来进行安装,安装的命令可以参照下面的几个。
由于我的centos7已经安装好了gcc,所以这一步我就跳过去了。
这里需要注意的是,如果你曾经make过了一次,但是由于种种原因make失败了(比如gcc没安装),在你解决了make失败所缺少的各个依赖之后,再次make可能会出现另一种make失败,是上一次make的一些残存文件没有被清理掉导致的,这时候,你需要调用make distclean之后,再去make。
好,我进入解压好的redis源码安装文件夹,我make。
然后就是漫长的盯着控制台的刷屏,心里默念“别出错”。
最后出现如下图的情形,说明make成功了。
好心的redis会好心建议你,“最好用make test命令测试一下看看是否真的make好了”
你会怎么做。我可以告诉你,不要去听他的建议,特别的烂,谁用谁后悔。因为,他会让你去买个TCL彩电,哈哈哈哈。
然后,输入命令 make install
注意:如果你这时候的用户是普通用户权限,则会报错,因为它会城市在/usr/local/bin下创建redis-server文件夹,普通用户权限是会被拒绝访问的。
所以,应该先进入su权限,然后再make install
这样redis算是编译安装完成了:看看VM的/usr/local/bin目录下是不是已经存在了redis的各个命令程序
顺便回顾一下,linux的/usr/local/等同类似windows的program files文件夹
配置启动redis server
接下来启动运行redis。redis运行需要指定对应的配置文件
一个好的习惯:在linux上运行配置任何东西,原有的默认配置文件一定要备份;更好的做法是拷贝一份默认出厂配置文件,然后修改配置这个拷贝的配置,运行时也使用这个配置,原有的出厂默认配置文件不去动他。
接下来,我们将默认的redis.conf配置文件复制到自己定义的一个配置文件夹中/myconfigs
[admin@localhost redis-3.2.3]$ suPassword: [root@localhost redis-3.2.3]# mkdir /myconfigs[root@localhost redis-3.2.3]# cp redis.conf /myconfigs/[root@localhost redis-3.2.3]# [root@localhost redis-3.2.3]# cd /myconfigs/[root@localhost myconfigs]# lltotal 48-rw-r--r--. 1 root root 46695 Sep 18 08:14 redis.conf[root@localhost myconfigs]#
然后,我们尝试vim redis.conf查看它的出厂默认配置。可以说,redis的配置文件的注释十分的详细清楚,这些注释说明绝对比某些2B的IT书籍更加宝贵,只是很多人没有这个“机会”去读它们。
本文这里由于只是初步说说redis3的安装配置,所以这里只说几个主要的(即general)
首先要配置的是daemmonize,配置redis是否为后台运行。简单的说就是,你希望启动redis之后,控制台是一直等在那里;还是放到后台去自己呆着去,老子还有其他事情现在要做。默认是no,也就是你大眼瞪小眼看黑屏。我们这里当然要把它配置成yes。如果你这么做了,redis会写一个pid文件在/var/run/reids.pid,让redis以后台运行方式启动
改后,保存退出
好配置文件改好了,接下来要运行redis了。不过在此之前,先让我们看看redis服务有没有启动。
[root@localhost myconfigs]# vim redis.conf
运行结果如下:可以看到此时redis服务并没有启动
之后我们回到redis命令程序的安装目录
[root@localhost myconfigs]# cd /usr/local/bin/[root@localhost bin]# ll
启动redis-server,注意,别忘了运行参数使用我们刚才定义的配置文件。
[root@localhost bin]# redis-server /myconfigs/redis.conf
救过,直接什么都没显示就回到命令行了。没有消息就是好消息,我们是daemonize设置的yes,即后台运行嘛。
并且这时候可以看到在/var/run/下(其实指向的是/run/下),已经存在了redis_6379.pid
这个pid的名字,可以在redis.conf中设置。如果你细心的话,刚才那个配置daemonize的截图上面就有相关配置和注释说明。系统启动redis了会创建这个pid,停止了就删除这个pid。
通过redis-cli客户端访问redis服务
好我们最后用redis客户端登录试试。
回到/usr/local/bin/,我们使用命令尝试用客户端以开端口为6379访问redis-server。注意,redis-server默认是端口6379,这个端口号可以在redis.conf中配置。
redis-cli -p 6379
redis尝试连通,可以在redis-cli中输入ping命令,如果连通正常,redis-server会返回pong。
我们可以做一些键值对设置:只要用set和get命令
127.0.0.1:6379> pingPONG127.0.0.1:6379> 127.0.0.1:6379> set k1 happyBKsOK127.0.0.1:6379> get k1"happyBKs"
这时候,我们可以再开一个xshell客户端连接访问VM服务器,看看redis的进程情况。
[admin@localhost ~]$ ps -ef |grep redisroot 5816 1 0 08:34 ? 00:00:01 redis-server 127.0.0.1:6379root 6080 5232 0 08:44 pts/0 00:00:00 redis-cli -p 6379admin 6370 6258 0 08:51 pts/2 00:00:00 grep --color=auto redis[admin@localhost ~]$
可以看到现在redis-server和redis-cli都存在。
之后,我们用shutdown命令关闭redis-cli连接,然后用exit命令退出。
这时候再看进程
附录:
在本地,使用客户端远程连接Redis服务,运行命令如下:
redis-cli -h xxx.xxx.111.168 -p 6379