我很久以前在我的 CentOS 7 DirectAdmin VPS 上安装了 Redis。现在我想删除当前版本 (3.0.5) 并安装最新的 Redis 3.2.5。
如何删除当前版本?
我前段时间使用以下命令安装了:
wget http://download.redis.io/releases/redis-3.0.5.tar.gz
tar xzf redis-3.0.5.tar.gz
cd redis-3.0.5
make
make test
make install
cd utils
chmod +x install_server.sh
./install_server.sh
Run Code Online (Sandbox Code Playgroud) 我正在尝试按照下面的文章让 OpenVAS 工作。
https://www.atlantic.net/community/howto/install-openvas-vulnerability-scanner-centos-7
但是它不起作用,当我运行 openvas-check-setup 时出现以下错误,当我检查 /var/log/redis/redis.log 时,它显示“打开 Unix 套接字:绑定:权限被拒绝”
openvas-check-setup 2.3.7 Test completeness and readiness of OpenVAS-8 (add '--v6' or '--v7' or '--v9' if you want to check for another OpenVAS version)
Please report us any non-detected problems and help us to improve this check routine: http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss
Send us the log-file (/tmp/openvas-check-setup.log) to help analyze the problem.
Use the parameter --server to skip checks for client tools like GSD and OpenVAS-CLI.
Step 1: Checking OpenVAS Scanner ...
OK: …Run Code Online (Sandbox Code Playgroud) Redis 4 添加了主动内存碎片整理(来源:发行说明):
主动内存碎片整理。如果使用 Jemalloc 分配器(Linux 上的默认设置),Redis 能够在联机时对内存进行碎片整理。对于分配器无法将碎片保持得足够低的工作负载非常有用,因此唯一的可能性是 Redis 和分配器协作以对内存进行碎片整理。
在 Redis 5 中,该功能(现在称为版本 2)得到了改进:
来源 1:Redis 主要开发者 Salvatore Sanfilippo 的推文
主动碎片整理版本 2。对正在运行的服务器进行内存碎片整理是黑魔法,但 Oran Agra 改进了他过去的努力,现在它比以前效果更好。对于长时间运行且容易造成 Jemalloc 碎片的工作负载非常有用。
资料来源2:AWS发布Redis 5
上一版本的亮点之一是 Redis 获得了在线进行内存碎片整理的功能。它的工作方式非常聪明:Redis 扫描键空间,对于每个指针,询问分配器将其移动到新地址是否有助于减少碎片。此版本附带了所谓的主动碎片整理 2:它更快、更智能且延迟更低。此功能对于分配器无法将碎片保持得足够低的工作负载特别有用,因此策略是让 Redis 和分配器合作。为此,必须使用 Jemalloc 分配器。幸运的是,它是 Linux 上的默认分配器。
问题:假设您已经在使用 Jemalloc,有什么理由不总是设置activedefrag yes呢?
鉴于替代方案是重新启动实例来处理碎片(这是一个很大的问题),并且鉴于到目前为止我所看到的 activedefrag 的开销似乎相当低,该选项似乎太有用了,默认情况下无法禁用。
或者是否存在会损害性能的情况?
我试图将Bjoern放在 Nginx 之后,以便轻松实现负载平衡和 DoS/DDoS 攻击缓解。
令我沮丧的是,我不仅发现它会像芯片一样丢弃连接(它在总连接数的 20% 到 50% 之间变化),而且如果不放在后面,它实际上似乎更快。
这是在具有 6GB RAM 和双核 2Ghz cpu 的机器上测试的。
我的应用程序是这样的:
import bjoern,redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
val = r.get('test:7')
def hello_world(environ, start_response):
status = '200 OK'
res = val
response_headers = [
('Content-type','text/plain'),
('Content-Length',str(len(res)))]
start_response(status, response_headers)
return [res]
# despite the name this is not a hello world as you can see
bjoern.run(hello_world, 'unix:/tmp/bjoern.sock')
Run Code Online (Sandbox Code Playgroud)
nginx配置:
user www-data;
worker_processes 2;
worker_rlimit_nofile 52000; # worker_connections * 2
pid /run/nginx.pid;
events { …Run Code Online (Sandbox Code Playgroud)