Home > Database > Redis > The use of shell for Redis operation and maintenance - statistical memory, regular backup, and benchmark testing

The use of shell for Redis operation and maintenance - statistical memory, regular backup, and benchmark testing

齐天大圣
Release: 2020-05-15 11:07:00
Original
1845 people have browsed it

使用Redis shell可以完成许多有意思的操作,使用也非常的简单,下面开始介绍。

Redis-cli

redis-cli的选项非常多,除了常用的-h、-p、-a外,下面在介绍几个很常用的选项。想查看所有选项的话可以使用redis-cli --help查看。

--version查看redis版本

# redis-cli --version
redis-cli 5.0.5
Copy after login

可以看到我当前的版本是5.0.5

-r,-i

r是repeat的缩写,表示重复几次的意思。i是interval的缩写,表示间隔多久(单位为妙)。

比如执行ping命令,共执行3次,每隔一秒执行一次。

# redis-cli -r 3 -i 1 ping
Copy after login

另外我们再介绍一个redis的api info memory,它是用来统计redis内存使用情况的。

# redis-cli info memory
# Memory
used_memory:878984
used_memory_human:858.38K
used_memory_rss:3796992
used_memory_rss_human:3.62M
……
Copy after login

统计redis内存信息

介绍了上面的知识后,再结合shell基础,就可以写出一个统计redis内存占用的脚本了。

shell脚本如下,每5秒获取内存信息,共取6次。

#!/bin/bash
memorys=`redis-cli -r 6 -i 5  info memory | grep used_memory:\
    | awk -F: '{print int($2)}'`
total=0
for memory in $memorys
do
    echo $memory
    total=$((memory+total))
done

echo "avg:"$((total/6))
Copy after login

有一个地方需要注意,在awk那行,需要用int转换为数字类型,否则循环里面的递增将会出错,必须保证变量memory是数字类型的。脚本的执行结果如下:

# ./bin/redis-used-memory.sh 
883480
883504
883504
883504
883504
883504
avg:883500
Copy after login

分别输出6个请求的数据,最后再打印出平均值。

--rdb 保存rdb文件到本地

有个该选项,再配合定时任务,我们就可以定期备份Redis数据。

# redis-cli --rdb /data/redis/rdb/dump.rdb
SYNC sent to master, writing 721 bytes to '/data/redis/rdb/dump.rdb'
Transfer finished with success.
Copy after login

如果redis含有重要数据的话,那么建议定时备份数据,防止数据丢失后损失太大。

Redis-benchmark

redis有专门做基准测试的工具,我们可以用它来测试redis的性能。下面介绍几个常用选项。如想知道更多的选项的用法,使用redis-benchmark --help查看更多信息

-c(clients)

表示客户端的并发数量,默认为50.

-n(requests)

表示客户端请求总量,默认值为100000。

例如,有100个客户端,总请求数为10000.

# redis-benchmark -c 100 -n 10000
Copy after login

-q

只显示每秒的请求数据

redis-benchmark -c 100 -n 10000 -q 
PING_INLINE: 98039.22 requests per second
PING_BULK: 102040.82 requests per second
SET: 94339.62 requests per second
GET: 99009.90 requests per second
……
Copy after login

可以看到,每秒set、get等命令的性能。

-t

对指定的命令进行基准测试,比如我只想看get和set的性能如何:

# redis-benchmark -t get,set -q
SET: 98911.96 requests per second
GET: 100200.40 requests per second
Copy after login

以上就是redis-cli和redis-benchmark的基本使用,想要维护redis,这两个工具必须要掌握好的哦。

The above is the detailed content of The use of shell for Redis operation and maintenance - statistical memory, regular backup, and benchmark testing. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template