ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

CentOS 安装 Redis 6.0.9

2020-12-16 11:32:31  阅读:219  来源: 互联网

标签:Mike CentOS Redis redis local usr 6.0 Node1 root


什么是Redis?


 

Redis通常被称为数据结构服务器。这意味着Redis通过一组命令提供对可变数据结构的访问,这些命令是使用带有TCP套接字和简单协议的服务器-客户端模型发送的。因此,不同的进程可以以共享的方式查询和修改相同的数据结构。

在Redis中实现的数据结构具有一些特殊属性:

  • 即使始终为它们提供服务并将它们修改到服务器内存中,Redis也会将它们存储在磁盘上。这意味着Redis速度很快,但它也是非易失性的。
  • 数据结构的实现强调内存效率,因此与使用高级编程语言建模的相同数据结构相比,Redis内部的数据结构可能使用较少的内存。
  • Redis提供了许多自然可以在数据库中找到的功能,例如复制,持久性的可调级别,集群和高可用性。

另一个很好的例子是将Redis视为memcached的一个更复杂的版本,其中的操作不仅是SET和GET,而且还适用于诸如列表,集合,有序数据结构等复杂数据类型的操作。

 

Redis 6.0 新特性


Redis 6.0引入了SSL,新的RESP3协议,ACL,客户端缓存,无盘副本,I / O线程,更快的RDB加载,新的模块API以及许多其他改进。

 

安装依赖包

[root@Mike-Node1 ~]#  yum -y install tcl gcc gcc-c++  make zlib zlib-devel

 

下载编译安装

[root@Mike-Node1 ~]# wget https://download.redis.io/releases/redis-6.0.9.tar.gz
[root@Mike-Node1 ~]# tar zxvf redis-6.0.9.tar.gz -C /usr/local/ && rm -rf redis-6.0.9.tar.gz
[root@Mike-Node1 ~]# cd /usr/local/redis-6.0.9/
[root@Mike-Node1 /usr/local/redis-6.0.9]# make && make install PREFIX=/usr/local/redis

遇到报错

server.c: In function ‘allPersistenceDisabled’:
server.c:1484:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
server.c: In function ‘writeCommandsDeniedByDiskError’:
server.c:3934:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
server.c: In function ‘iAmMaster’:
server.c:5134:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make[1]: *** [server.o] Error 1
make[1]: Leaving directory `/usr/local/redis-6.0.9/src'
make: *** [all] Error 2

出现这种错误是由于Redis6.0版本以上要求gcc需要5.3版本以上,升级gcc即可

默认gcc版本

[root@Mike-Node1 ~]# gcc -v
***********

gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
[root@Mike-Node1 ~]#

升级gcc版本

[root@Mike-Node1 ~]# yum -y install centos-release-scl
[root@Mike-Node1 ~]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
[root@Mike-Node1 ~]# echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
[root@Mike-Node1 ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-9/root/usr --mandir=/opt/rh/devtoolset-9/root/usr/share/man --infodir=/opt/rh/devtoolset-9/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-9.3.1-20200408/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC) 
[root@Mike-Node1 ~]# 

 

修改配置文件

[root@Mike-Node1 /usr/local/redis-6.0.9]# cp -rf redis.conf /usr/local/redis/
[root@Mike-Node1 /usr/local/redis-6.0.9]# cd /usr/local/redis
[root@Mike-Node1 /usr/local/redis]# vim redis.conf

bind 127.0.0.1
daemonize yes
requirepass mike666
protected-mode no
logfile /usr/local/redis/logs/redis.log
dir /usr/local/redis/data

[root@Mike-Node1 /usr/local/redis]#
[root@Mike-Node1 /usr/local/redis]# mkdir logs data
[root@Mike-Node1 /usr/local/redis]# 

设置 redis密码  mike666,日志路径和数据存储路径

 

启动Redis

[root@Mike-Node1 /usr/local/redis]# vim /etc/systemd/system/redis.service

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[root@Mike-Node1 /usr/local/redis]#
[root@Mike-Node1 /usr/local/redis]# systemctl daemon-reload
[root@Mike-Node1 /usr/local/redis]# systemctl start redis.service
[root@Mike-Node1 /usr/local/redis]# systemctl enable redis.service
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.
[root@Mike-Node1 /usr/local/redis]# 

 

设置软连接

[root@Mike-Node1 ~]# ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis

 

启动警告解决

17468:M 16 Dec 2020 10:54:26.205 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
17468:M 16 Dec 2020 10:54:26.205 # Server initialized
17468:M 16 Dec 2020 10:54:26.205 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
17468:M 16 Dec 2020 10:54:26.205 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo madvise > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled (set to 'madvise' or 'never').
17468:M 16 Dec 2020 10:54:26.205 * Ready to accept connections

解决一

[root@Mike-Node1 ~]# vim /etc/sysctl.conf 

net.core.somaxconn = 1024
vm.overcommit_memory = 1


[root@Mike-Node1 ~]# sysctl -p

解决二

[root@Mike-Node1 ~]# vim /etc/rc.local

echo never > /sys/kernel/mm/transparent_hugepage/enabled


[root@Mike-Node1 ~]# source /etc/rc.local 
[root@Mike-Node1 ~]# systemctl restart redis

 

服务操作命令

systemctl start redis.service     #启动redis服务

systemctl stop redis.service     #停止redis服务

systemctl restart redis.service   #重新启动服务

systemctl status redis.service   #查看服务当前状态

systemctl enable redis.service   #设置开机自启动

systemctl disable redis.service   #停止开机自启动

 

客户端连接

[root@Mike-Node1 ~]# redis -h 127.0.0.1 -p 6379
127.0.0.1:6379> AUTH mike666
OK
127.0.0.1:6379> 

 

本文分享完毕,感谢支持点赞~~

标签:Mike,CentOS,Redis,redis,local,usr,6.0,Node1,root
来源: https://www.cnblogs.com/mike666/p/14143014.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有