当前位置:网站首页>【Redis】redis安装与客户端redis-cli的使用(批量操作)
【Redis】redis安装与客户端redis-cli的使用(批量操作)
2022-08-08 13:06:00 【InfoQ】
Part1、在Centos中安装Redis
安装步骤
mkdir /data/redis & cd /data/redis
wget https://download.redis.io/releases/redis-6.0.9.tar.gz
tar xzf redis-6.0.9.tar.gz
cd redis-6.0.9
make
make test
redis-server
redis-cli
cp src/redis-server /usr/local/bin/
cp src/redis-cli /usr/local/bin/
cp src/redis-sentinel /usr/local/bin/
cd /data/redis/
创建一个6379的文件夹
mkdir 6379
将配置模板拷贝到6379中
cp redis-6.0.9/redis.conf 6379
cd 6379
mkdir log
mkdir run
vim /data/redis/6379/redis.conf
daemonize yes ## 后台运行
pidfile /data/redis/run/redis_6379.pid
logfile /data/redis/log/redis_6379.log
dir /data/redis/6379
/usr/local/bin/redis-server /data/redis/6379/redis.conf

/usr/local/bin/redis-cli

安装可能出现的问题
make[3]: 进入目录“/data/redis/redis-6.0.9/deps/hiredis”
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb net.c
make[3]: cc:命令未找到
make[3]: *** [net.o] 错误 127
make[3]: 离开目录“/data/redis/redis-6.0.9/deps/hiredis”
make[2]: *** [hiredis] 错误
yum install gcc-c++
make distclean
make
server.c: 在函数‘redisSetProcTitle’中:
server.c:5052:15: 错误:‘struct redisServer’没有名为‘cluster_enabled’的成员
if (server.cluster_enabled) server_mode = " [cluster]";
^
server.c:5053:20: 错误:‘struct redisServer’没有名为‘sentinel_mode’的成员
else if (server.sentinel_mode) server_mode = " [sentinel]";
^
server.c:5057:15: 错误:‘struct redisServer’没有名为‘bindaddr_count’的成员
server.bindaddr_count ? server.bindaddr[0] : "*",
^
server.c:5057:39: 错误:‘struct redisServer’没有名为‘bindaddr’的成员
server.bindaddr_count ? server.bindaddr[0] : "*",
^
server.c:5058:15: 错误:‘struct redisServer’没有名为‘port’的成员
server.port ? server.port : server.tls_port,
^
server.c:5058:29: 错误:‘struct redisServer’没有名为‘port’的成员
server.port ? server.port : server.tls_port,
^
server.c:5058:43: 错误:‘struct redisServer’没有名为‘tls_port’的成员
server.port ? server.port : server.tls_port,
yum -y install centos-release-scl && yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && scl enable devtoolset-9 bash
make distclean
make
make
It's a good idea to run 'make test'
make test
You need tcl 8.5 or newer in order to run the Redis test
yum install -y tcl
Part2、redis-cli,Redis命令行界面
客户端回复结果作为其他的输出
/usr/local/bin/redis-cli
/usr/local/bin/redis-cli incr mycounter > /tmp/output.txt
cat /tmp/output.txt

/usr/local/bin/redis-cli --no-raw incr mycounter > /tmp/output.txt

--raw
主机,端口,密码和数据库
/usr/local/bin/redis-cli -h localhost -p 6379 ping
-a <password>
/usr/local/bin/redis-cli -a myUnguessablePazzzzzword123 ping
统计
redis-cli -h IP地址 -p 端口 -a 密码 info keyspace
redis-cli keys "Abc*" | wc -l
从其他程序获取内容当做redis的输入
/usr/local/bin/redis-cli -x set incrcount < /tmp/output.txt
vim /tmp/commands.txt
set foo 100
incr foo
append foo xxx
get foo
cat /tmp/commands.txt | /usr/local/bin/redis-cli

--raw
redis-cli
> /tmp/output.txt
连续运行相同的命令
-r <count>和-i <delay>


随时间监视RSS内存大小
redis-cli -r -1 -i 1 INFO | grep rss_human

批量操作
vim /tmp/commands.txt

cat /tmp/commands.txt | /usr/local/bin/redis-cli --pipe > /tmp/batchout.tx
--pipe

如何批量删除指定的数据
/usr/local/bin/redis-cli keys '1*' |xargs /usr/local/bin/redis-cli del
连续统计模式
--stat
实时监控
-i

扫描大键
/usr/local/bin/redis-cli -x set bigkeyname < /tmp/commands.txt
redis-cli --bigkeys

SCAN命令
获取按键列表
redis-cli --scan | head -10
redis-cli --scan --pattern '*-11*'
监控Redis中的操作命令
redis-cli monito

|grep
RDB文件的远程备份
redis-cli --rdb /tmp/redisdump.rdb
执行LRU模拟
./redis-cli --lru-test 10000000
如果批量删除 带\n后缀的key

-t
-t 表示先打印命令,然后再执行。

redis-cli -a daimler1818 del lru:17288 lru:3818127
get
get
keys 'lru:*'

\n
get "lru:3717577\n"

/data/codis/codis/redis-cli -a password keys "lru*" |head -10 | xargs -I {} -t echo ' del "{}\n"' > /tmp/lrutest.txt
/data/codis/codis/redis-cli -a password keys "lru*"
head -10
xargs -I {} -t echo 'del "{}\n"'
{}
echo 'del "{}\n"'
del "lru:3717577\n"
> /tmp/lrutest.txt
cat /tmp/lrutest.txt | ./redis-cli -a password -x

cat /tmp/lrutest.txt | ./redis-cli -a password --pipe
Part3参考文档

边栏推荐
- 使用shardingjdbc实现读写分离配置
- Qt操作Sqlite类封装,及命令行导入csv文件到Sqlite数据库
- xxd命令(反编译、二进制文件转十六进制文件)
- 北京 北京超大旧货二手市场开集了,上千种产品随便选,来的人还真不少
- What is the IP SSL certificate, how to apply for?
- php文件上传下载(存放文件二进制到数据库)
- node中package解析、npm 命令行npm详解,node中的common模块化,npm、nrm两种方式查看源和切换镜像
- 哈佛大学砸场子:DALL-E 2只是「粘合怪」,生成正确率只有22%
- logistic回归模型—基于R
- 华谊“在劫难逃”,4年亏掉64亿
猜你喜欢
家电行业趋势:2022从三方面把握家电产品升级方向
字节跳动资深架构师整理2022年秋招最新面试题汇总:208页核心体系
自动当道,效率至上 | 快来解锁财务共享服务中心数字化秘籍
一名合格的程序员是如何优雅地解决线上问题的?
[C language] Dynamic memory management
The most complete JVM performance tuning in history: thread + subsystem + class loading + memory allocation + garbage collection
你是什么时候对深度学习失去信心的?
HackTheBox | Horizontall
【C语言】动态内存管理
面试官问你什么是长轮询?
随机推荐
一名合格的程序员是如何优雅地解决线上问题的?
三个点语法和DOM观察者
【软考 系统架构设计师】软件架构设计⑦ 构件与中间件技术
又一个千亿市场,冰淇淋也成了创新试验田
nvm的使用 nodejs版本管理,解决用户名是汉字的问题
2022-08-03
牛 plus,多层嵌套动态 JSON 该如何解析总结
【软考 系统架构设计师】软件架构设计⑥ 软件产品线
使用.NET简单实现一个Redis的高性能克隆版(三)
In-depth analysis of the soul of C language -- pointer
【黑马早报】巴菲特罕见巨亏近3000亿;周鸿祎回应360不能卸载;三亚倡议酒店不变相提高房价;首个国产抗新冠口服药定价不超300元...
简析LDO静态电流与功耗的关系
php文件上传下载(存放文件二进制到数据库)
Server Configuration - Install Redis on Linux System
leetcode 155. Min Stack最小栈(中等)
qsort 函数的使用及其模拟实现
xxd命令(反编译、二进制文件转十六进制文件)
直接选择排序
Program Environment and Preprocessing
难产的“第一股”:中式快餐之困