原创作者:运维工程师 谢晋
Redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
系统软件环境
操作系统 | Red Hat Enterprise Linux Server release 7.2 |
---|---|
主机名 | Redis |
专用 IP 地址 | 192.168.19.138 |
gcc | 9.1.1 |
redis | 6.0.3 |
redis部署
配置网络yum源(使用163yum源)
- 配置网络yum源(使用163yum源)
进入yum源配置目录下:
# cd /etc/yum.repos.d/
使用weget命令下载yum源配置文件
# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
下载后需要修改文件里的版本号,否则无法使用yum源:
# vi CentOS7-Base-163.repo
编辑文件,把文件里面的$releasever全部替换为版本号:7,然后保存。
替换:
:%s/$releasever/7/g
保存:
:wq
刷新重载yum源配置:
# yum clean all
使用list选项验证,正常显示软件包即成功。
#yum list
gcc安装升级
- 安装gcc
# yum install gcc*
- 升级gcc
# gcc -v
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
# yum -y install centos-release-scl
# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
centos7下编译redis6.0版本,gcc的版本低于5需升级。
- 永久切换gcc
# scl enable devtoolset-9 bash
# echo “source /opt/rh/devtoolset-9/enable” >> /etc/profile
# gcc -v
gcc version 9.1.1 20190605 (Red Hat 9.1.1-2) (GCC)
切换完成之后重新连接服务器生效
redis安装
- 获取安装包
# wget http://download.redis.io/releases/redis-6.0.3.tar.gz
- 解压安装包
# tar -zxvf redis-6.0.3.tar.gz
- 编译
# cd redis-6.0.3/
# make install
- 测试安装
# cd src/
# ./redis-server
- 测试交互
# src/redis-cli
> set foo bar
OK
> get foo
"bar"
Redis配置
- 配置本机外访问
# vi /mnt/redis-6.0.3/redis.conf
bind 192.168.19.138 ::1
- 创建Redis服务
# vi /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis Server
After=network.target
[Service]
ExecStart=/mnt/redis-6.0.3/src/redis-server /mnt/redis-6.0.3/redis.conf --daemonize no
ExecStop=/mnt/redis-6.0.3/src/redis-cli -p 6379 shutdown
Restart=always
[Install]
WantedBy=multi-user.target
- 设置Redis服务开机启动
# systemctl enable redis
# systemctl start redis