搭讪 Redis 的三种姿势:shell、图形工具、PyCharm,牵手成功
文章目录shell 脚本访问 Redis图形工具连接 Redis程序连接 Redispycharm 连接 redis设置和获取值使用字符串操作使用列表操作使用哈希表操作shell 脚本访问 Redis脚本内容write_redis.sh#!/bin/bash# Redis 连接参数可根据需要修改REDIS_HOST127.0.0.1# Redis 服务器地址REDIS_PORT6379# Redis 端口REDIS_DB0# 使用的数据库编号# 写入 100 个键值对for i in {0..99} 为bash循环变量i依次取0到99共100个值foriin{0..99};do# 拼接键名形如 key:0、key:1 …… key:99KEYkey:$i# 拼接值VALUE 取循环变量 i 的值形如 0、1 …… 99VALUE$i# 调用 redis-cli 写入键值对-h 指定Redis服务器地址-p 指定端口-n 指定使用的数据库编号SET 后依次跟键名KEY与值VALUEPDF中 SET $KEY 和 $VALUE 跨两行此处合并为一行redis-cli-h$REDIS_HOST-p$REDIS_PORT-n$REDIS_DBSET$KEY$VALUEdone# 循环结束后打印提示echo 输出一行文字表明100条数据已全部写入echo已成功写入100条数据到 Redis。给脚本添加执行权限# 给脚本添加执行权限chmod x 为文件添加可执行权限write_redis.sh为脚本文件名[rootlocalhost ~]# chmod x write_redis.sh运行脚本# 运行脚本./ 表示执行当前目录下的脚本write_redis.sh为要运行的脚本名[rootlocalhost ~]# ./write_redis.shOK# 一条写入命令执行成功Redis返回OK......OK 已成功写入100条数据到Redis。# 脚本结束时打印的提示表明100条数据已全部写入[rootlocalhost ~]# 可选增强功能带密码认证如果 Redis 设置了密码加上-a your_password注意安全性或使用--askpass。批量管道操作更快如需更高性能可使用redis-cli --pipe批量导入适合大量数据。图形工具连接 RedisRedis Desktop Manager 又名 RDM它是一款用于 WindowsLinux 和 MacOS 的快速开源 Redis 数据库管理应用程序能够为用户提供一系列功能选择以及操作设定以便于用户直接对需要管理的 Redis 数据库进行建设性操作以树形的方式来罗列出密匙以及 CRUD 密钥可节约用户的很多宝贵时间此工具支持识别 shell 命令管理员能够根据自己的需要添加 shel以此让程序系统执行对应的命令操作它为用户提供中文显示界面同时还提供了通俗易懂的用户界面无论是新手用户还可以经验十足的用户都可以非常轻松的上手。Github 地址https://github.com/qishibo/AnotherRedisDesktopManager验证结果# 验证数据写入结果info keyspace 查看各数据库的键空间统计信息127.0.0.1:6379info keyspace# Keyspacedb0:keys100,expires0,avg_ttl0# 0号库共有100个键均未设置过期时间平均TTL为0# keys pattern按模式批量查找匹配的键key:* 匹配所有以key:开头的键127.0.0.1:6379keys key:*需要提前在 redis 服务器上配置 redis 密码和关闭防火墙更改 bind 地址程序连接 RedisRedis 支持多种开发语言访问# 关闭防火墙systemctl stop firewalld 停止firewalld防火墙服务避免其拦截Redis端口[rootlocalhost ~]# systemctl stop firewalld# 编辑Redis配置文件vim /etc/redis.conf 用vim编辑器打开Redis主配置文件[rootlocalhost ~]# vim /etc/redis.conf # 第69行绑定地址改为允许所有bind 0.0.0.0 表示监听本机所有网卡地址允许任意IP远程连接bind0.0.0.0# 重启Redis服务systemctl restart redis 重启redis服务使配置生效[rootlocalhost ~]# systemctl restart redis# 设置Redis密码为123456CONFIG SET requirepass 123456 动态设置访问密码requirepass为密码配置项127.0.0.1:6379CONFIG SET requirepass123456OK# 密码设置成功Redis 官方客户端列表地址https://redis.io/docs/latest/develop/clients/pycharm 连接 redis基本语句pythonpython 提供了多种开发库都可以支持连接访问 Redis下面选择使用 redis-py 库连接 redisredis-py 使用手册# redis-py 使用手册https://redis.io/docs/latest/develop/clients/redis-py/# 安装redis-py库pip install redis 用pip包管理器安装Python的Redis客户端库redis-pypipinstallredis解释# 导入redis模块这是Python操作Redis的官方客户端库需提前安装pip install redisimportredis# 创建一个Redis客户端对象r用于与远程Redis服务器通信host: Redis服务器IP地址这里是局域网中的192.168.108.172port: Redis默认端口6379password: 认证密码123456说明Redis配置了requirepass 123456db: 使用第0号数据库Redis默认有16个逻辑数据库编号0~15rredis.Redis(host192.168.108.172,port6379,password123456,db0)# 打印Redis客户端对象的描述信息用于调试确认连接配置是否正确print(r)接收 set 操作的返回值redis-py版本与r.set(...)成功时的返回值对照redis-py 版本r.set() 成功返回值4.0.0 及以上当前主流版本True布尔值✅3.x 及更早bOK字节串注意文件不要为redis.py会和 redis 模块名称冲突。解释# 调用set()方法向Redis中设置一个字符串类型的键值对# 键keycolor1值valuered# 相当于在Redis CLI中执行SET color1 redresultr.set(color1,red)# r.set()的返回值说明# 自redis-py 4.0起为了更符合Python习惯成功操作统一返回True失败则抛出异常如连接错误、认证失败等print(result)完整代码# 导入redis模块即Python的Redis客户端库importredis# 创建Redis客户端对象rhost为服务器IPport为端口6379password为认证密码123456db指定使用0号数据库rredis.Redis(host192.168.108.172,port6379,password123456,db0)# 打印客户端对象用于调试确认连接配置是否正确print(r)# 接收set操作的返回值r.set(color1,red) 写入字符串键值对 color1redresultr.set(color1,red)# 打印set操作的返回值print(result)# 输出 True或 OK取决于 redis-py 版本设置和获取值可以使用set和get方法来存储和检索数据使用字符串操作redis-py 提供了多种字符串操作方法如incr增加decr减少append追加等。# 存储变量r.set(color1,red) 写入字符串键color1值为redr.set(color1,red)# 获取变量值r.get(color1) 读取键color1的值返回bytes类型valuer.get(color1)# 打印读取到的值print(value)# 写入键int1初始值为10Redis中以字符串数字存储r.set(int1,10)# 自增r.incr(int1) 将键int1的值加1并返回自增后的结果restultr.incr(int1)# 自减r.decr(int1) 将键int1的值减1并返回自减后的结果restultr.decr(int1)# 打印自增自减后的最终结果print(restult)使用列表操作Redis 的列表是一个简单的字符串列表可以进行lpush从左边插入、rpush从右边插入、lpop从左边弹出、rpop从右边弹出等操作。注释# 使用LPUSH命令将字符串nihao从左侧头部推入名为mylist的列表r.lpush(mylist,nihao)列表操作代码# 列表r.lpush 从左侧头部向列表mylist推入元素nihaor.lpush(mylist,nihao)# 再次从左侧推入laogao头插使其排在列表最前面r.lpush(mylist,laogao)# r.lrange(mylist,0,-1) 取列表全部元素0到-1表示从头到尾打印结果print(r.lrange(mylist,0,-1))如果 mylist 不存在Redis 会自动创建它。执行后mylist 内容为[nihao]# 再次使用LPUSH将laogao插入到列表最左边# 列表是头进所以新元素在前# 此时mylist内容变为[laogao, nihao]r.lpush(mylist,laogao)# 使用LRANGE命令获取列表mylist中从索引0到-1即全部元素的内容# 在Redis中-1表示最后一个元素0是第一个# r.lrange(...)返回的是字节串bytes组成的列表因为Redis存储的是二进制安全的字符串print(r.lrange(mylist,0,-1)) 小知识Redis 列表是左进右出还是右进左出LPUSH从左边插入 → 新元素在头部RPUSH从右边插入 → 新元素在尾部列表索引0是最左边最新插入的 LPUSH 元素-1是最右边最早插入的输出[blaogao, bnihao]注意每个字符串前面有b...表示这是 bytes 类型不是普通字符串str。使用哈希表操作Redis 的哈希表是一个字符串字段和字符串值之间的映射表可以进行hset设置字段、hget获取字段、hgetall获取所有字段和值等操作。# 在名为student的哈希表Hash中设置字段fieldname的值为lisi# 相当于执行Redis命令HSET student name lisir.hset(student,name,lisi)# 在同一个哈希表student中再设置字段age的值为18# 注意Redis中所有值都是字符串即使看起来像数字如18存储时也是字符串类型r.hset(student,age,18)# 获取哈希表student中字段name的值# 返回值是bytes类型因为redis-py默认返回字节# 输出blisiprint(r.hget(student,name))# 获取age字段的值# 输出b18print(r.hget(student,age))# 获取student哈希表中所有字段和值# 返回一个字典dict但键和值都是bytes类型print(r.hgetall(student))完整代码# 哈希r.hset 向哈希表student中设置字段等价于HSET命令r.hset(student,name,lisi)# 再设置age字段值为18r.hset(student,age,18)# 读取name字段的值返回blisiprint(r.hget(student,name))# 读取age字段的值返回b18print(r.hget(student,age))# 读取student的全部字段与值返回由bytes组成的字典print(r.hgetall(student))

相关新闻

算法一千零一夜 · 第三夜 神庙之夜的汉诺塔

算法一千零一夜 · 第三夜 神庙之夜的汉诺塔

第三夜 神庙之夜的汉诺塔灯又亮了。第三夜。这一夜不回那间教室。上一夜散场,我带走的是那个归字。递是出发,归是回家,接不归的棋救不回。可是回去的路上,我一直在想这句话的后半截。既然要回家,那条回家的路&#xf…

2026/10/11 8:30:31 阅读更多 →
Skills不是技能列表,而是可验证、可迁移的能力单元

Skills不是技能列表,而是可验证、可迁移的能力单元

1. “skills”不是标签,是能力可测量、可迁移、可复用的最小单元你有没有遇到过这种情况:简历里写了“熟练掌握Python”,面试官却问“你用Python解决过哪个具体问题?数据量多大?性能瓶颈在哪?怎么验证结果正…

2026/10/11 8:29:31 阅读更多 →
L2二层安全协同防御:从DHCP Snooping到802.1X的实战指南

L2二层安全协同防御:从DHCP Snooping到802.1X的实战指南

安全基础系列写到第十五篇,该聊L2层面协同了。网络安全这个圈子里有个很有意思的现象:新入行的朋友喜欢从Web漏洞、挖洞平台和渗透靶场入手,总觉得先拿到目标站点权限才算入门;但真正在企业内网做过防守的人都知道,数据…

2026/10/11 8:29:31 阅读更多 →

最新新闻

风光储并网模型搭建全攻略:从MPPT到SOC的实战避坑指南

风光储并网模型搭建全攻略:从MPPT到SOC的实战避坑指南

说实话,风光储并网模型这活儿,看起来就是把光伏、风机、储能三个单元各自搭好,再并到一根母线上,最后挂到电网上。听起来不算复杂,但真动手的时候,光伏MPPT的初始占空比、风机转子侧控制的PI参数、储能SOC的…

2026/10/11 9:58:55 阅读更多 →
AI Agent自学成才:软件测试的范式革命已至

AI Agent自学成才:软件测试的范式革命已至

最近一年,我有个特别直观的感受:以前大家聊AI软件测试,说的是“用AI帮忙生成几个用例”,现在完全变了一个画风。你给一个AI Agent扔下一个待测应用,它能自己打开界面、点击按钮、填写表单、断言结果,发现Bu…

2026/10/11 9:58:55 阅读更多 →
JMeter分布式压测实战:从单机瓶颈到多机扩容

JMeter分布式压测实战:从单机瓶颈到多机扩容

搞过性能测试的同学多半经历过这个场景:被测系统的CPU才跑到20%,但压测机自己的CPU先满载了,TPS曲线怎么都拉不上去,线程数加得越多响应时间反而越烂。这时候你基本可以断定,单机JMeter已经到极限了,该上分…

2026/10/11 9:58:55 阅读更多 →
Claude Code插件深度体验:JetBrains IDE下的Agent级AI编程实战

Claude Code插件深度体验:JetBrains IDE下的Agent级AI编程实战

从“JetBrains党”这个称呼来看,你多半和我一样,一天里有大半时间都泡在IDEA、PyCharm或WebStorm里。Claude Code插件最直白的价值,就是把它原本在命令行里那套“能打”的Agent能力,完整搬到了你日常离不开的IDE侧边栏里&#xff…

2026/10/11 9:58:55 阅读更多 →
WhiteboxTools:ArcGIS用户必备的开源地理空间分析引擎

WhiteboxTools:ArcGIS用户必备的开源地理空间分析引擎

简介:本资源是专为ArcGIS Pro及ArcGIS 10.6及以上版本用户打造的高性能地理空间分析工具箱——WhiteboxTools官方集成包,面向GIS开发者、遥感工程师与水文/地形分析科研人员,解决传统ArcGIS平台在高级栅格计算、LiDAR处理与无监督图像分类等场…

2026/10/11 9:58:55 阅读更多 →
从代码规范到质量门禁:用impeccable标准打造可落地的工程检查体系

从代码规范到质量门禁:用impeccable标准打造可落地的工程检查体系

1. 一个词撑起一个项目:为什么“impeccable”值得单独拿出来做第一次看到有人拿“impeccable”当项目名,我脑子里蹦出来的不是词典释义,而是一个很具体的场景:代码评审时,有人提了一句“这个模块的边界处理不够 impecc…

2026/10/11 9:57:55 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →