当前位置: 首页 > news >正文

NoSQL 非关系型数据库 Redis 的使用:

redis是基于内存型的NoSQL 非关系型数据库,本内容只针对有基础的小伙伴, 因为楼主不会做更多的解释,而是记录更多的技术接口使用,毕竟楼主不是做教学的,没有教学经验。 关于redis的介绍请自行搜索查阅。

使用redis数据库首先先去安装, 楼主这里使用的是docker 搭建的Redis, 关于docker 的知识点请自行查阅, 因为讲起来三天三夜也讲不完,  如果不想使用docker, 也可以一步一步的去搭建Redis数据库, 使用docker一个命令就搭建好了,简单速度快捷方便!

楼主已经将docker搭建的 Redis服务启动起来了。

由于楼主是学python的, 本教程中会有大量的python 代码出现。

链接Redis:

使用 redis-cli 即可实现客户端与服务端的链接,

测试redis 客户端与服务端的链接:

使用 PING 命令, 则可以测试是否与redis 成功链接, 但需要注意的是, 如果ping 后面没有跟任何参数, 则会返回 PONG,  如果ping后面跟了参数, redis服务则会将传递的参数给返回:

这种情况下,表明客户端已经成功链接上了 redis服务,

如果链接有问题,则会报错:

Python 测试链接Redis:

from redis import Redisredis_cli = Redis()if redis_cli.ping():print("Redis 服务链接成功!")
else:print("Redis 服务链接失败!")

 配置服务器:

这种配置只是针对于docker 以外的redis服务搭建方式, 不是使用docker 搭建的, 但是也同样十分重要!

方式一:

启动Redis服务器的时候给定配置选项作为参数,格式为:

 $ redis-server --OPTION1 [value1 value2 ...] --OPTION2 [value1 value2 ...] [...]

 例如,Redis服务器默认使用6379作为端口号,但如果你想使用10086而不是6379作为端口号,那么可以在启动Redis服务器时通过设定port可选项来指定想要的端口号:

$ redis-server --port 10086  

 方式二:

 在启动Redis服务器的时候为其提供配置文件,并将想要修改的配置选项写在配置文件中:

 $ redis-server /path/to/your/file

 例如,为了将Redis服务器的端口号改为12345,我们可以在当前文件夹中创建配置文件myredis.conf,并在文件中写入 : port 12345 然后启动redis服务的时候向其提供该配置文件。

Redis 数据类型:

字符串:

 字符串(string)键是Redis最基本的键值对类型,这种类型的键值对会在数据库中把单独的一个键和单独的一个值关联起来,被关联的键和值既可以是普通的文字数据,也可以是图片、视频、音频、压缩文件等更为复杂的二进制数据。

 Redis为字符串键提供了一系列操作命令,通过使用这些命令,用户可以:

●为字符串键设置值。

●获取字符串键的值。

●在获取旧值的同时为字符串键设置新值。

●同时为多个字符串键设置值,或者同时获取多个字符串键的值。

●获取字符串值的长度。

●获取字符串值指定索引范围内的内容,或者对字符串值指定索引范围内的内容进行修改。

●将一些内容追加到字符串值的末尾。

●对字符串键存储的整数值或者浮点数值执行加法操作或减法操作。

 SET 命令为字符串键设置值:

 我们可以使用 set 命令来为一个字符串的键 设置一个值 :

set key value

例如:

可以发现, 设置成功后, 则会返回 OK 

改变覆盖规则:

默认情况下, 已有的键值如果再次被复制,原有的值则会被覆盖掉, 例如:set name "张三"  这个命令设置了两次, 第二次为: set name "wangwu"  那么, 第二次设置的值会覆盖掉上次设置的值, 这个时候,在redis中存储的name 的值则为:wangwu.

从Redis 2.6.12版本开始,用户可以通过向SET命令提供可选的NX选项或者XX选项来指示SET命令是否要覆盖一个已经存在的值:

SET key value [NX|XX]  

 如果用户在执行SET命令时给定了NX选项,那么SET命令只会在键没有值的情况下执行设置操作,并返回OK表示设置成功;如果键已经存在,那么SET命令将放弃执行设置操作,并返回空值nil表示设置失败。

 如果用户在执行SET命令时给定了XX选项,那么SET命令只会在键已经有值的情况下执行设置操作,并返回OK表示设置成功;如果给定的键并没有值,那么SET命令将放弃执行设置操作,并返回空值表示设置失败。

 

 GET 命令获取字符串的值:

 可以使用GET命令从数据库中获取指定字符串键的值:

 get key

 GET命令接受一个字符串键作为参数,然后返回与该键相关联的值。

 我们可以使用 keys * 查看redis中存储的所有键:

由此可见,这里存储了 age, name 两个键,使用get 命令则可以获取它们的值:

可以发现, 如果尝试去获取一个 不存在的键:address,  则会返回 nil。

GETSET 命令获取旧值并设置新值:

GETSET命令就像GET命令和SET命令的组合版本,GETSET首先获取字符串键目前已有的值,接着为键设置新值,最后把之前获取到的旧值返回给用户:

GETSET key new_value  

 

如果使用GETSET 命令操作的是一个不存在的键, 那么会先将 nil 作为旧值返回,然后再设置一个新的值:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vuetify3: 根据滚动距离显示/隐藏搜索组件
  • Linux平台x86_64|aarch64架构如何实现轻量级RTSP服务
  • 实验四 图像增强—灰度变换之直方图变换
  • 终端交互提示`quote>`
  • 项目部署_持续集成_Jenkins
  • 间接平差——以水准网平差为例 (matlab详细过程版)
  • Swagger的原理及应用详解(八)
  • 10元 DIY 一个柔性灯丝氛围灯
  • python库(5):Psutil库实现系统和硬件监控工具
  • 驱动新质生产力发展:绿色算力有了科学评价标准
  • 用Python轻松转换PDF为CSV
  • 【笔记】记一次在linux上通过在线安装mysql报错 CentOS 7 的官方镜像已经不再可用的解决方法+mysql配置
  • 针对 LLM 应用程序优化 RAG
  • QT操作各类数据库用法详解
  • python conda查看源,修改源
  • “大数据应用场景”之隔壁老王(连载四)
  • 【mysql】环境安装、服务启动、密码设置
  • DOM的那些事
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Flex布局到底解决了什么问题
  • GitUp, 你不可错过的秀外慧中的git工具
  • hadoop集群管理系统搭建规划说明
  • java 多线程基础, 我觉得还是有必要看看的
  • linux学习笔记
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Quartz初级教程
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Vue 重置组件到初始状态
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • XML已死 ?
  • 大快搜索数据爬虫技术实例安装教学篇
  • 大主子表关联的性能优化方法
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 欢迎参加第二届中国游戏开发者大会
  • 计算机在识别图像时“看到”了什么?
  • 记一次用 NodeJs 实现模拟登录的思路
  • 聊聊directory traversal attack
  • 判断客户端类型,Android,iOS,PC
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 移动端解决方案学习记录
  • 用简单代码看卷积组块发展
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​渐进式Web应用PWA的未来
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (k8s)kubernetes 部署Promehteus学习之路
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (七)Knockout 创建自定义绑定
  • (十三)Flask之特殊装饰器详解
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .net Application的目录
  • .NET CLR Hosting 简介
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 表达式计算:Expression Evaluator