配置Redis详细⽅法介绍
Redis(REmote DIctionary Server)是⼀个由Salvatore Sanfilippo编写的key-value存储系统。你可以使⽤它作为memcached简单的键值对存储,同时也可以使⽤edis作为NoSQL数据库,甚⾄可以使⽤Pub-Sub模式的MessageBroker。
本⽂简单介绍下在Ubuntu20.04或Ubuntu18.04系统上安装、配置和调试最新Redis版本的⽅法,有需要安装的⼩伙伴可以看看。
1、安装Redis
本⽂使⽤Chris-Lea/redis-serverPPA,这⾥的Redis版本较新,官⽹的版本较旧。
将PPA添加到系统的软件源(如有提⽰按下ENTER键),命令如下:
$ sudo add-apt-repository ppa:chris-lea/redis-server
更新软件包列表,然后安装Redis,依次执⾏命令:
$ sudo apt-get update
$ sudo apt-get install redis-server -y
设置Redis开机⾃动启动:
$ sudo systemctl enable redis-server.service
2、配置Redis
使⽤编辑器打开Redis配置⽂件,命令如下:
$ sudo nano /etc/f
更新Redis可以监听的IP地址:
如果在应⽤程序服务器上安装了Redis,则默认设置是安全的。
bind 127.0.0.1 ::1
不⽤改变这句话,这时候应⽤程序将使⽤LoopBack IP 127.0.0.1连接到Redis。
否则的话,需要在Redis服务器和应⽤服务器之间启⽤和配置专⽤⽹络,然后添加私有IP,例如,192.0.2.1,到上⾯⾏的末尾,⽤空格分开。
bind 127.0.0.1 ::1 192.0.2.1
您的应⽤程序将使⽤私有IP 192.0.2.1连接到Redis。注意:让Redis监听公共IP是危险并将这个实例暴露给互联⽹上的每⼀个⼈,所以不建议使⽤第⼆种⽅式。
接下来为应⽤程序设置所需的内存容量,例如,128 MB(平均128 MB):
maxmemory 128mb
默认情况下,当最⼤内存到达时,Redis将停⽌编写新数据。如果您希望Redis通过⾃动删除旧数据来
继续编写新数据,则必须告诉Redis如何删除它,设置如下:
maxmemory-policy allkeys-lru
此外,Redis在指定的时间段和对DB的写⼊操作数之后会将内存中的数据保存在磁盘上,默认设置为:
save 900 1
save 300 10
save 60 10000
代表的意思分别如下:
900秒后(15分钟),如果⾄少有⼀个键改变
300秒(5分钟)后,如果⾄少有10个键改变
60秒后,如果⾄少有10000个键更改
所以,使⽤上述默认设置,Redis将在每次重新启动时将保存的数据加载到内存中。所以你以前的内存数据将被恢复。如果您不需要此功能,则可以通过注释掉这些⾏来完全禁⽤它。
#save 900 1
#save 300 10
#save 60 10000
如果您决定保留此功能,则应将服务器升级到更⼤的计划,以确保为Redis保留的内存是最⼤内存上述声明。否则,在最坏的情况下,当最⼤内存到达时,保存过程会导致服务器耗尽内存。
保存并关闭配置⽂件,然后重新启动Redis以应⽤更改,命令如下:、
$ sudo systemctl restart redis-server.service
3、微调系统
打开Redis⽇志⽂件,命令如下:
$ sudo tail /var/log/redis/redis-server.log
您将看到以下这样的信息内容:
50570:M 24 Jul 2020 09:53:24.644 # Server initialized
50570:M 24 Jul 2020 09:53:24.644 # 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 /f and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
50570:M 24 Jul 2020 09:53:24.644 # 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 never >
/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.
50570:M 24 Jul 2020 09:53:24.645 * Loading RDB produced by version 6.0.5
50570:M 24 Jul 2020 09:53:24.645 * RDB age 0 seconds
50570:M 24 Jul 2020 09:53:24.645 * RDB memory usage when created 0.76 Mb
50570:M 24 Jul 2020 09:53:24.645 * DB loaded from disk: 0.000 seconds
50570:M 24 Jul 2020 09:53:24.645 * Ready to accept connections
要修复上⾯的第⼀个警告,输⼊以下命令:
$ echo ‘vm.overcommit_memory = 1’ | sudo tee -a /f > /dev/null
$ sudo sysctl -p
要修复上⾯的第⼆个警告,创建⼀个新的⽂本⽂件:
$ sudo nano /etc/rc.local
然后将以下⽂本粘贴到该⽂件中:
#!/bin/bash
echo never > /sys/kernel/mm/transparent_hugepage/enabled
systemctl restart redis-server.service
exit 0
保存并关闭该⽂件,然后使其可运⾏,并由root⽤户拥有。
$ sudo chown root:root /etc/rc.local
$ sudo chmod 770 /etc/rc.local
可选设置:
如果Redis与应⽤程序服务器分离,并且还安装了UFW,则必须配置UFW以允许连接到Redis端⼝,默认为6379: $ sudo ufw allow 6379
如果在Ubuntu18.04上安装Redis,Redis将触发关于“TCP积压”的附加警告,若要修复此警告,请输⼊以下命令:$ echo ‘somaxconn = 512’ | sudo tee -a /f > /dev/null
$ sudo sysctl -p
4、验证设置
重新启动系统:
$ sudo reboot
打开Redis⽇志⽂件,以确保上⾯的两个警告已经消失:
$ sudo tail /var/log/redis/redis-server.log
切换到应⽤服务器,通过执⾏以下操作,确保它可以与Redis服务器对话:
安装redis-cli提供的程序Redis-⼯具来⾃官⽅:
$ sudo apt-get install redis-tools
使⽤redis-cli配置的Redis IP地址连接到Redis服务器,例如,192.0.2.1:
$ redis-cli -h 192.0.2.1
如果连接成功将看到Redis命令提⽰符如下所⽰:
192.0.2.1:6379> _
输⼊⼀些Redis命令以确保其正常⼯作:
set testkey testvalue
ubuntu安装教程get testkey
exit
如果您看到以下结果,那么您的Redis设置就是成功的:
192.0.2.1:6379> set testkey testvalue
OK
192.0.2.1:6379> get testkey
“testvalue”
192.0.2.1:6379> exit
总之,以上就是在Ubuntu20.04或Ubuntu18.04系统上安装最新Redis版本的⽅法,相对来说还是⽐较简单的,如果有不清楚的⼩伙伴可以参考上述教程进⾏设置。
发布评论