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

 

posted @ 2021-10-12 18:04  夏之夜  阅读(636)  评论(0编辑  收藏  举报