redis 学习笔记之(五)redis-cli 命令
以下示例均适用于 安装在 linux 服务器上的 redis
1、通过命令检测 redis 的连通性
./redis-cli -p <port> -h <ip> -a <password> ping |
若是成功连接 redis ,会返回 字符串 “PONG”
#检查redis 连通性 # 0 表示redis 可正常连接 1表示连接不上 check_connectively() { password=`cat $HOME/conf/redis.conf |grep requirepass |grep -v '#'|awk '{print $2}'|sed 's/\"//g'` pong=`$HOME/bin/redis-cli -p $port -h 127.0.0.1 -a $password ping` if [ "$pong" == "PONG" ];then echo 0 else echo 1 fi }
2、查看redis使用的内存大小
INFO memory
3、列出所有数据库及其包含的键的数量
INFO keyspace
说明:
db0\db3\db7等:表示数据库的名称
keys:表示key的数量
expires:设置了过期时间的键的数量
avg_ttl:表示所有过期键的平均生存时间(以秒为单位)
4、获取特定数据库的键的数量
SELECT <database_number>
DBSIZE
从图中可以看到 select 0 查看db0的key的数量,redis返回了OK,接着输入dbsize 其就可以返回db0的key的数量,这里返回的470,和 keyspace中显示的 db0 的 keys中的值一摸一样。
注意:这些命令(2-4)提供的数据量大小是基于Redis内存中的数据,并不包括磁盘上的数据持久化大小。如果你需要知道持久化文件的大小,你需要查看磁盘上的RDB或AOF文件的大小。
5、查看redis 角色
info replication
6、批量插入keys
#!/bin/bash #SET DIR current_path=$(cd `dirname $0`; pwd)
#redis实例所在服务器 IP ip=$1
#redis实例的端口
port=$2
#redis连接密码
pswd=$3
#所有设置key的命令所在文件
data_file_path=$4
#redis的安装目录
redis_installation_path=$5
#设置插入多少条key-value
insert_key_counts=$6
#设置插入的key的前缀
prefix_key=$7 log=$current_path/batch_insert_keys.log touch $log if [ -z $insert_key_counts ];then insert_key_counts=1000000 fi if [ -z $prefix_key ];then # 生成一个0到32767之间的随机整数 prefix_key=$RANDOM fi rm -f $data_file_path ## 主备1百万条数据 count=0 while ((count<$insert_key_counts)) do echo "SET keytest$prefix_key$count value$count" >>$data_file_path let count++ done cat $data_file_path |$redis_installation_path/bin/redis-cli -h $ip -p $port -a $pswd -n 0 --pipe >> $log 2>&1
执行该脚本的示例:
sh -x batch_insert_keys.sh 127.0.0.1 7019 Xu5Aq4To0W /opt/redis/redis-data.txt /opt/temp/web/components/redislinux64.1 1000000 test2
通过脚本命令传入的参数,把新增的所有k-v设置命令都放在了/opt/redis/redis-data.txt文件中,该文件中,每个命令是一行,如下图所示
7、批量删除符合一定规则的keys
#!/bin/bash #SET DIR current_path=$(cd `dirname $0`; pwd)
# redis实例所在服务器IP ip=$1
#redis实例端口
port=$2
#redis实例密码
pswd=$3
#redis安装目录
redis_installation_path=$4 log=$current_path/batch_delete_keys.log touch $log ## 删除keys $redis_installation_path/bin/redis-cli -h $ip -p $port -a $pswd keys "keytest*" |xargs $redis_installation_path/bin/redis-cli -h $ip -p $port -a $pswd del >> $log 2>&1
脚本中的逻辑是:删除所有keytest开头的key。
执行该脚本的示例:
sh -x batch_delete_keys.sh 127.0.0.1 7019 Xu5Aq4To0W /opt/temp/web/components/redislinux64.1