redis 安装和测试

网友投稿 246 2022-11-01

redis 安装和测试

1)安装

一、以deb包的形式

download gpg

​​curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg​​

echo source

​​echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list​​

install redis software

​​apt update​​

​​apt install redis -y​​

确认redis服务是否起来

​​systemctl status redis-server​​

看下监听在哪个ip上

​​ps -ef|grep redis​​

或者

​​ss -nlap|grep 6379​​

6379是redis的监听端口。通过以上命令可以看到默认监听在127.0.0.1的ip地址上.

修改/etc/redis/redis.conf配置改变监听地址

重启redis-server服务

​​systemctl restart redis-server​​

查看已经成功监听在0.0.0.0地址上了

root@nginx-active:~# systemctl status redis-server● redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2022-06-23 08:58:16 CST; 5s ago Docs: man:redis-server(1) Process: 5230 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS) Main PID: 5252 (redis-server) Status: "Ready to accept connections" Tasks: 5 (limit: 4915) CGroup: /system.slice/redis-server.service └─5252 /usr/bin/redis-server 0.0.0.0:6379

二、以snapcraft的方式

​​snap install redis​​

snapd install method:​​Install snapd​​

2)测试

三、利用redis-benchmark工具测试redis性能

观察下当前系统的负载、内存情况.top和free -h

内存还剩余11G

total used free shared buff/cache availableMem: 15G 701M 11G 21M 3.3G 14GSwap: 0B 0B 0B

利用iostat -t 2观察下磁盘性能,间隔2s 以20个并发测试请求100k的request

​​redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 20​​

结果如下: 由于在本地上,不经过网络,所以没有网络延时的影响,这里最主要的测试结果只能说明redis在memory上的性能

====== PING_INLINE ====== 100000 requests completed in 0.63 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: no Summary: throughput summary: 157728.70 requests per second latency summary (msec): avg min p50 p95 p99 max 0.096 0.032 0.095 0.151 0.207 0.607====== PING_MBULK ====== 100000 requests completed in 0.60 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 165837.48 requests per second latency summary (msec): avg min p50 p95 p99 max 0.094 0.032 0.095 0.143 0.167 0.583====== SET ====== 100000 requests completed in 0.66 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 151745.08 requests per second latency summary (msec): avg min p50 p95 p99 max 0.113 0.032 0.111 0.159 0.215 0.703====== GET ====== 100000 requests completed in 0.63 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 158730.16 requests per second latency summary (msec): avg min p50 p95 p99 max 0.104 0.032 0.103 0.151 0.191 0.439====== INCR ====== 100000 requests completed in 0.73 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 137362.64 requests per second latency summary (msec): avg min p50 p95 p99 max 0.129 0.032 0.127 0.191 0.239 0.663====== LPUSH ====== 100000 requests completed in 0.94 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 106951.88 requests per second latency summary (msec): avg min p50 p95 p99 max 0.163 0.048 0.159 0.223 0.335 1.119====== RPUSH ====== 100000 requests completed in 0.71 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: no Summary: throughput summary: 140056.03 requests per second latency summary (msec): avg min p50 p95 p99 max 0.117 0.032 0.111 0.183 0.247 0.455====== LPOP ====== 100000 requests completed in 0.69 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 145348.83 requests per second latency summary (msec): avg min p50 p95 p99 max 0.116 0.040 0.119 0.167 0.231 0.447====== RPOP ====== 100000 requests completed in 0.67 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 149700.61 requests per second latency summary (msec): avg min p50 p95 p99 max 0.110 0.032 0.111 0.159 0.199 0.383====== SADD ====== 100000 requests completed in 0.86 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 115740.73 requests per second latency summary (msec): avg min p50 p95 p99 max 0.131 0.032 0.127 0.199 0.255 0.831====== HSET ====== 100000 requests completed in 0.92 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 109051.26 requests per second latency summary (msec): avg min p50 p95 p99 max 0.149 0.048 0.151 0.215 0.271 0.639====== SPOP ====== 100000 requests completed in 0.81 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 123762.38 requests per second latency summary (msec): avg min p50 p95 p99 max 0.113 0.032 0.111 0.175 0.223 0.583====== ZADD ====== 100000 requests completed in 0.69 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 144717.80 requests per second latency summary (msec): avg min p50 p95 p99 max 0.117 0.032 0.119 0.167 0.231 0.911====== ZPOPMIN ====== 100000 requests completed in 0.63 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 158227.84 requests per second latency summary (msec): avg min p50 p95 p99 max 0.107 0.032 0.103 0.151 0.223 0.591====== LPUSH (needed to benchmark LRANGE) ====== 100000 requests completed in 0.90 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 110987.79 requests per second latency summary (msec): avg min p50 p95 p99 max 0.161 0.040 0.159 0.239 0.311 0.791====== LRANGE_100 (first 100 elements) ====== 100000 requests completed in 1.68 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 59453.03 requests per second latency summary (msec): avg min p50 p95 p99 max 0.278 0.088 0.271 0.407 0.471 0.943====== LRANGE_300 (first 300 elements) ====== 100000 requests completed in 4.02 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 24863.25 requests per second latency summary (msec): avg min p50 p95 p99 max 0.411 0.136 0.407 0.519 0.583 1.871====== LRANGE_500 (first 500 elements) ====== 100000 requests completed in 5.73 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 17455.05 requests per second latency summary (msec): avg min p50 p95 p99 max 0.582 0.144 0.575 0.671 0.815 2.503====== LRANGE_600 (first 600 elements) ====== 100000 requests completed in 6.41 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 15607.93 requests per second latency summary (msec): avg min p50 p95 p99 max 0.647 0.112 0.647 0.767 0.903 4.415====== MSET (10 keys) ====== 100000 requests completed in 1.12 seconds 20 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 89365.51 requests per second latency summary (msec): avg min p50 p95 p99 max 0.201 0.064 0.191 0.271 0.319 0.591

上面的命令将会对所有的subset进行测试,可以加上参数-t指定subset,例如指定set进行随机的测试。 先flushall下(删除所有)

​​redis-cli flushall​​

通过pidstat观察下redis进程的内存使用情况

命令:​​pidstat -r -p 5252 2​​

​​redis-benchmark -t set -r 100000 -n 1000000​​

====== SET ====== 1000000 requests completed in 7.58 seconds 50 parallel clients 3 bytes payload keep alive: 1 host configuration "save": 3600 1 300 100 60 10000 host configuration "appendonly": no multi-thread: noSummary: throughput summary: 131856.53 requests per second latency summary (msec): avg min p50 p95 p99 max 0.318 0.080 0.303 0.495 0.583 1.983

查看下大小 redis-cli dbsize

(integer) 99993

pidstat观察到的现象如下

总共耗时8.22秒,minflt/s也就是第四列(soft page fault,次缺页错误)开始增多然后下降,这个字段表明redis进程和其它进程存在共用内存区域的情况,不影响,mmu内存管理单元会再次重新进行VA和PA的映射。如果是第五列值增加了(hard page fault)那就会影响性能,因为此时cpu需要从磁盘读取。倒数第二列表明了该进程的内存使用百分比,从0.07增加到0.12增加0.05。也就是增加了8M。也就是dbsize为99995需要占用8M的内存。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:zabbix 历史数据和趋势数据
下一篇:DSP与PC机及单片机通信接口的扩展设计概述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~