centos6.2升级 centos现在哪个版本最流行
CentOS6.2版本用yum升级到CentOS6.6的方法
因为手上只有6.2版本的CentOS,安装好后觉着版本太低了,就通过命令行进行升级
查看可用的更新
#yumlist updates
更新升级到centos 6.5
#yumupdate
不幸的是,我在这次的更新过程中,出现了一些错误
Error: Package: matahari-host-0.4.4-11.el6.i686(@anaconda-CentOS-201112130233.i386/6.2)
Requires: libqpidclient.so.5
Removing: qpid-cpp-client-0.12-6.el6.i686(@anaconda-CentOS-201112130233.i386/6.2)
libqpidclient.so.5
Updated By: qpid-cpp-client-0.14-22.el6_3.i686(base)
Not found
Error: Package: matahari-service-0.4.4-11.el6.i686(@anaconda-CentOS-201112130233.i386/6.2)
Requires: libqpidclient.so.5
Removing: qpid-cpp-client-0.12-6.el6.i686(@anaconda-CentOS-201112130233.i386/6.2)
libqpidclient.so.5
Updated By: qpid-cpp-client-0.14-22.el6_3.i686(base)
Not found
根据它的提示,执行命令
# yum update--skip-broken
和
# rpm-Va--nofiles--nodigest
都不行,经过网络搜索找到解决办法:
1、先卸载qpid-cpp-client
# yum-y remove qpid-cpp-client
2、清除重建缓存
# yum clean all
# yum makecache
3、重新执行更新动作
# yum update
CentOS安装Redis单实例
1、创建安装目录
为了方便管理我们一般统一软件的安装目录,这里选择安装的目录是:
/usr/local/soft
2、下载Redis
我们通过wget命令从Redis官网下载压缩包->\
当前最新版本下载地址->
cd/usr/local/softwget、解压tar-zxvfredis-6.2.4.tar.gz4、安装gcc依赖
Redis是C语言编写,编译需要GCC\Redis6.x.x版本支持了多线程,需要gcc的版本大于4.9,我们需要查看默认GCC版本,如果版本过低则需要升级
gcc-v
我的新安装的虚拟机CentOS显示->
证明我的没有安装gcc,安装gcc->
yuminstallgcc
再次查看安装后的版本,发现是4.8.5,这个是CentOS默认的版本,我们需要对gcc进行升级->
yum-yinstallcentos-release-sclyum-yinstalldevtoolset-9-gccdevtoolset-9-gcc-c++devtoolset-9-binutilssclenabledevtoolset-9bashecho"source/opt/rh/devtoolset-9/enable">>/etc/profile
查看升级后的版本->
5、编译安装cdredis-6.2.4/srcmakeinstall
编译过程如下:
看到如下结果输出则编译成功
或者在src目录下出现服务端和客户端的脚本
redis-sentinelredis-serverredis-cli6、修改配置文件
Redis的配置文件在解压目录下的redis.conf
6.1首先设置后台启动,防止窗口一关闭服务就挂掉
默认后台启动参数为no
#BydefaultRedisdoesnotrunasadaemon.Use'yes'ifyouneedit.#NotethatRediswillwriteapidfilein/var/run/redis.pidwhendaemonized.#WhenRedisissupervisedbyupstartorsystemd,thisparameterhasnoimpact.daemonizeno
修改成yes
#BydefaultRedisdoesnotrunasadaemon.Use'yes'ifyouneedit.#NotethatRediswillwriteapidfilein/var/run/redis.pidwhendaemonized.#WhenRedisissupervisedbyupstartorsystemd,thisparameterhasnoimpact.daemonizeyes6.2允许其他主机访问
根据Redis的文档配置注释,我们要运行其他主机访问有多种方式:
可以选择配置访问主机的IPaddress
bind-::相当于允许所有其它主机访问
bind0.0.0.0相当于允许所有其它主机访问
直接注释相当于允许所有其它主机访问
#bind192.168.1.10010.0.0.1#listensontwospecificIPv4addresses#bind127.0.0.1::1#listensonloopbackIPv4andIPv6#bind*-::*#likethedefault,allavailableinterfaces
我的处理方式,安装文档的注释来配置:
6.3配置访问密码
如果是要考虑安全性,一定要配置密码,找到requirepass配置处,新增如下配置(阿里云等云服务其外网访问一定要配置,作者被黑过,整台服务器重启都无法重启,损失惨重,但是穷,官方处理需要Money,建议这里一定要谨慎)
tar-zxvfredis-6.2.4.tar.gz07、启动Redis
使用redis-server来启动,启动的方式如下:
tar-zxvfredis-6.2.4.tar.gz1
或者这个也一样:
tar-zxvfredis-6.2.4.tar.gz2
查看端口是否启动成功:
tar-zxvfredis-6.2.4.tar.gz38、客户端
进入客户端的方式如下:
tar-zxvfredis-6.2.4.tar.gz49、停止Redis
停止Redis有两种方式:
方式一,在客户端中执行tar-zxvfredis-6.2.4.tar.gz5
tar-zxvfredis-6.2.4.tar.gz5
方式二,暴力kill-9
tar-zxvfredis-6.2.4.tar.gz610、配置别名
为了方便启动Redis和进入客户端,我们可以通过配置别名来实现
tar-zxvfredis-6.2.4.tar.gz7
添加如下配置:
注意''很重要
redis与rcli后面的=两边不能有空格
aliasredis='tar-zxvfredis-6.2.4.tar.gz1'aliasrcli='tar-zxvfredis-6.2.4.tar.gz4'
使配置生效:
tar-zxvfredis-6.2.4.tar.gz9
现在我们可以通过redis启动Redis服务,使用rcli进入Redis客户端:
Centos7.x Redis6.2.5 Cluster搭建
官方地址:
前提条件:
Redis Cluster不使用一致性哈希,而是使用不同形式的分片每个键在概念上都是我们所谓的哈希槽的一部分。
Redis Cluster有 16384个哈希槽,计算哈希值是多少给定密钥的插槽,我们只需取密钥的 CRC16模 16384。
Redis集群中的每个节点都负责哈希槽的一个子集,例如,您可能有一个包含 3个节点的集群,其中:
节点 A包含从 0到 5500的哈希槽。
节点 B包含从 5501到 11000的哈希槽。
节点 C包含从 11001到 16383的哈希槽。
如果报错 ERR This instance has cluster support disabled的话,说明集群未开启。
本例子是在一台服务器上面做的实验,只是创建了6个目录,启了6个redis-server而已。
创建一个 redis.conf每个目录中的文件,从 7000到 7005。作为配置文件的模板,只需使用上面的小示例,但一定要更换端口号 7000使用正确的端口号根据目录名。
通过 ps aux|grep redis查看redis的启动情况。
如果不想通过配置和执行来创建Redis集群如上所述,手动单个实例,有一个更简单的系统(但您不会了解相同数量的操作细节)。
只需检查 utils/create-clusterRedis发行版中的目录。有一个脚本叫做 create-cluster里面(与目录同名它包含在)中,它是一个简单的 bash脚本。为了开始一个有 3个主节点和 3个从节点的 6节点集群只需输入以下内容命令:
回复 yes在第 2步中,当 redis-cli实用程序要你接受集群布局。
您现在可以与集群交互,第一个节点将从端口 30001开始默认情况下。完成后,使用以下命令停止集群:
请阅读 README在此目录中以获取有关如何操作的更多信息运行脚本。
create-cluster.sh
集群信息
集群节点
我上面的例子我们可以看出,设置的key会被分配到不同的实例去。
现在很多的sdk都支持move,例如:phpredis。
我们先查看下当前的集群情况。
目前 7000, 7001, 7002是 master角色, 7003, 7004, 7005是 slave角色。
然后我们将 7001这个端口的redis服务的进程杀掉。
7004.log日志,发现 7001主挂了,然后将自己升级为master。
查询当前的集群状态如下:
我们可以看出, 7004升级了 master, 7001是 fail状态。
启动 7001的redis服务。
7001.log中可以发现,自己变成了 slave。
此时我们再来看下集群情况:
目前 7000, 7002, 7004是 master角色, 7001, 7003, 7005是 slave角色,自动进行了故障切换。
如果配置了 requirepass的话, masterauth必须需要配置,不然 master与 slave不能自动切换。
修改配置文件 redis.conf中的 cluster-enabled参数的值为 yes并把参数前#去除,重启Redis服务器。
在命令尾部追加 2>/dev/null即可。
我们继续在 cluster-test目录下,创建 7006目录,配置和之前的一样,不同就是端口以及日志路径,然后启动服务即可。
看下最新的集群情况
添加一个 7006的从节点。
在 cluster-test目录下,创建 7007目录,配置和之前的一样,不同就是端口以及日志路径,然后启动服务即可。
看下最新的集群情况
从上面集群情况可以看出了问题,新增加的 7006, 7007的虽然增加到了集群里面,但是没有分配slot。
分配后的集群情况
缩容前:
将 7006的slot给了 7000。
缩容后:
删除了 7006, 7007后的集群情况