Redis的非关系型数据库

第七天课堂笔记

今日目标

  1. 非关系型数据库(nosql【not only SQL】数据库)

  2. Redis的非关系型数据库

  3. Redis的安装和配置

  4. Redis常见数据类型

  5. Redis特性

nosql数据库

not only sql数据库,非关系型数据库,往往采用类似于json来存储数据。

结构化和非结构化的问题

非结构化的数据,灵活多变,根据具体情况,可以对应灵活选择数据存储的结构

结构化数据,往往固定不变。

nosql数据库缺点:

目前没有统一的标准,每一个nosql数据库都有存在不一样的语法结构,学习成本较高。

Redis数据库

Redis(remote dictionary server)远程字典服务,Redis中的数据采用KV键值对的方式存储的数据。

官网网站:redis.io/

Redis中文网:Redis中文网/

Redis还是免费开源的数据库,但是注意它最新的开源协议,为了针对云服务器提供商。

Redis的安装和配置

Redis官方没有提供window版本的Redis安装包,Redis官方提供的仅仅是C语言源码包,Linux直接编译安装,window中就比较麻烦。

17年之前,微软官方的开源组织帮助编译了一个window的安装包(在3.x版本之后,不再更新)。

后期有github上一个个人开发者在编译window的安装包。

如果使用.msi安装方法,直接下一步即可。

如果采用压缩包:

下载安装包,解压后,打开文件夹,内容如下:

为了方便启动,我们在该目录下新建一个 startup.cmd 的文件,然后将以下内容写入文件:

redis-server redis.windows.conf

这个命令其实就是在调用 redis-server.exe 命令来读取 redis.window.conf 的内容,我们双击刚才创建好的 startup.cmd 文件,就能成功的看到 Redis 启动:

或者另一种方法打开一个cmd窗口使用cd命令切换目录到redis目录下:

输入启动命令:

redis-server.exe redis.windows.conf

在启动时候得另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了,切换到redis目录下运行

redis-cli.exe -h 127.0.0.1 -p 6379

Redis的配置

Redis在启动时,会加载一个配置文件,该配置决定了Redis的大多数性能问题

bind ip

port 6379

daemonize yes Linux存在,window中没有

dbfilename dump.rdb

dir ./

requirepass 密码

slaveof mastip mastport 5.0之前使用这个

replicaof mastip mastport 5.0之后

其他的一些重要的配置选项,大家要根据注释自己理解和使用。

redis的特点

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

redis的常见数据类型

redis随着版本的升级,功能也在进一步的升级,很多好用、针对特定环境的数据都出现了,像经纬度等等,但是核心的数据主要存在五个,这五个数据类型也被称为Redis的基本数据类型。

  • 字符串

  • hash table

  • List

  • set

  • sorted set

Redis中,key的类型都是字符串,值的类型可以是任何一种Redis支持的数据类型。

字符串类型

存储的值,类型是字符串

  • set key value

  • get key

  • setex key secode value

  • mset key value [key value ……]

  • mget key [key ……]

  • incr key key + 1

  • incrby key num key + num

  • decr key key - 1

  • decrby key num

  • append key value:将value的值拼接到x后面

  • strlen key:获取key对应的值的长度

  • setnx key value

key相关的命令

  • keys pattern:查找键,支持正则

  • exists key:查找键是否存在,存在返回1,否则返回0

  • type key:查看键对应的值的类型

  • del key:根据key删除键值对

  • expire key seconds:给key设置过期时间

  • ttl key:查看键的有效时间

  • persist key

    select index

    move key

    dbsize

    Info

    flushdb

    flushall

    help

    ​ @类型

    ​ 命令

    ​ 指令

hash类型

  • hset key field value

  • hget key field

  • hmset key field value [field value ]

  • hmget key field [field ]

  • hget key field :获取key对应的值

  • hmget key field [field]:获取多个key对应的value值

  • hgetall key:获取所有属性和值

  • hkeys key:获取所有的属性

  • hlen key:获取包含属性的个数

  • hvals key:获取所有的值

  • hexists key field:判断属性是否存在

  • hdel key field [field]:根据属性名称删除属性及值

  • hstrlen key field:返回值的字符串长度

  • hsetnx key value

  • hincrby key field value

list列表

set集合

底层都是hash table实现的,哈希表的特性:无序的、不重复的

zset集合

底层就是hash tabl,对哈希表实现了一种包装,为每一个元素实现了权重

Redis特性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大宗】第一期:大航海时代下的[集运欧线]

一、大航海时代 - 集运欧线前世今生 01 航运合约指数的诞生 ‍‍‍‍ 2023年8月18日,上海期货交易所的伙伴们搞了个大新闻——他们推出了一种新的期货品种,叫做“欧线集运”。这可不是什么普通的期货,它是基于一个叫做SCFIS的指数&#xf…

上海汇正财经官网怎么样?客户好评如潮,口碑赞誉之声不绝于耳

在财经服务领域,客户评价是衡量一家企业信誉和服务质量的重要标准。上海汇正财经作为业内知名的财经服务平台,以其优质的服务赢得了广大客户的认可和好评。大量正面用户评价和成功服务的案例,充分证明了上海汇正财经是一个值得信赖的正规企业…

每日两题 / 131. 分割回文串 42. 接雨水(LeetCode热题100)

131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09; 数据量较小&#xff0c;考虑直接暴力&#xff0c;每次dfs&#xff1a;以bg作为左区间&#xff0c;往右遍历&#xff0c;找到一段回文串区间后&#xff0c;将回文串插入vector<string>&#xff0c;并以下一个下标…

段位在于面对人性之恶,一笑而过

这个小哥哥不知道是哪里不对劲了&#xff0c;突然给我留言说我在骗流量&#xff0c;骗关注。公众号是我的&#xff0c;文章是我写的&#xff0c;主要分享的就是我创业的一些接单案例&#xff0c;因为之前收到很多无效的留言&#xff0c;寻求合作就几个字我不想接收无效信息&…

Day18学习Java

File - 文件类 File&#xff0c;是文件和目录路径名的抽象表示。 File只关注文件本身的信息&#xff0c;而不能操作文件里面的内容。 File类 – 表示文件或文件夹&#xff0c;不能对文件里的数据进行操作。 对文件里的数据进行操作的是&#xff1a;IO流。 需求1&#xff1a;通…

Unity 权限 之 Android 【权限 动态申请】功能的简单封装

Unity 权限 之 Android 【权限 动态申请】功能的简单封装 目录 Unity 权限 之 Android 【权限 动态申请】功能的简单封装 一、简单介绍 二、Android 权限 动态申请 三、实现原理 四、注意事项 五、案例实现简单步骤 附录&#xff1a; 一、进一步优化 二、多个权限申请…

第三方软件检测机构要具备哪些资质要求?专业测试报告如何申请?

第三方软件检测机构是独立于软件开发商和用户之外的公正机构&#xff0c;负责对软件进行全面的检测和评估。其独立性保证了评测结果的客观性和公正性&#xff0c;有效避免了软件开发商对自身产品的主观偏见和误导。 要成为一家合格的第三方软件检测机构&#xff0c;需要具备一…

网络编程——多进程的服务器

多进程的网络服务器 多进程的网络服务器是一种使用多个进程来处理并发网络请求的服务器架构。在这种架构中&#xff0c;服务器在接收到客户端连接请求后&#xff0c;会创建一个新的子进程来处理该请求&#xff0c;从而允许服务器同时处理多个客户端连接。多进程服务器通常用于…

OKR 实践:来自一位信息技术部主管的成功秘诀

OKR 实践&#xff1a;来自一位信息技术部主管的成功秘诀 为什么选择OKR 公司信息技术部为38个各地分公司、12,000名员工的IT需求提供服务。庞大而多样的客户群常常使我们的团队分散&#xff0c;许多团队都在各自为政&#xff0c;以个案为基础解决问题&#xff0c;而不是采用企业…

线上监控诊断利器:Arthas,你值得拥有

1. 引言 在现代软件开发中&#xff0c;线上监控和诊断是确保应用稳定性和性能的关键环节。然而&#xff0c;对于Java开发者来说&#xff0c;传统的监控工具往往难以深入到代码层面进行实时分析。这正是Arthas这一线上监控诊断工具大展身手的地方。本文将深入探讨Arthas&#x…

LabVIEW高低温试验箱控制系统

要实现LabVIEW高低温试验箱控制系统&#xff0c;需要进行硬件配置、软件设计和系统集成&#xff0c;确保LabVIEW能够有效地监控和控制试验箱的温度。以下是详细说明&#xff1a; 硬件配置 选择合适的试验箱&#xff1a; 确定高低温试验箱的型号和品牌。 确认试验箱是否支持外…

摸鱼大数据——Hive表操作——文件数据的导入和导出

数据导入和导出 1、文件数据导入 1.1 直接上传文件 window页面上传 需求: 已知emp1.txt文件在windows/mac系统,要求使用hdfs保存此文件 并且使用hivesql建表关联数据 use day06; ​ -- 1- 创建Hive表 create table emp1 (id int,name string,salary int,dept string )row for…

基于51单片机的汽车智能灯光控制系统

一.硬件方案 本设计硬件部分&#xff0c;中央处理器采用了STC89C52RC单片机&#xff0c;另外使用两个灯珠代表远近光灯&#xff0c;感光部分采用了光敏电阻&#xff0c;因为光敏电阻输出的是电压模拟信号&#xff0c;单片机不能直接处理模拟信号&#xff0c;所以经过ADC0832进…

基于python flask +pyecharts实现的气象数据可视化分析大屏

背景 气象数据可视化分析大屏基于Python Flask和Pyecharts技术&#xff0c;旨在通过图表展示气象数据的分析结果&#xff0c;提供直观的数据展示和分析功能。在当今信息化时代&#xff0c;气象数据的准确性和实时性对各行业具有重要意义。通过搭建气象数据可视化分析大屏&…

Vue 3 教程:入门指南

Vue 3 教程&#xff1a;入门指南 Vue 3 教程&#xff1a;入门指南 Vue 3 教程&#xff1a;入门指南引言1. 初始化项目2. 响应式数据使用 ref使用 reactive 3. 计算属性4. 侦听器5. 组合式 API6. 总结 引言 Vue.js 是一个用于构建用户界面的渐进式框架。Vue 3 引入了许多新的特…

Qt子线程更新UI的一种新玩法

目录 1. 说明2. 场景3. 子线程更新UI的方法3.1 一般做法3.2 新玩法 1. 说明 Qt不允许子线程直接操作主线程UI&#xff0c;推荐的做法是&#xff0c;子线程发送信号&#xff0c;主线程响应该信号。其最终的效果&#xff0c;依旧不是子线程直接操作主线程UI。 2. 场景 假设现在…

【kubernetes】关于k8s集群如何将pod调度到指定node节点(亲和与反亲和等)

目录 一、调度约束 1.1K8S的 List-Watch 机制 ⭐⭐⭐⭐⭐ 1.1.1Pod 启动典型创建过程 二、调度过程 2.1Predicate&#xff08;预选策略&#xff09; 常见的算法 2.2priorities&#xff08;优选策略&#xff09;常见的算法 三、k8s将pod调度到指定node的方法 3.1指定…

Validated的分组校验和自定义校验注解

1. Validated的分组校验 1.1 简介 Validated的分组校验是指根据不同的校验规则对同一个实体类进行不同的校验。这在实际开发中非常常见&#xff0c;比如在新增和更新操作中&#xff0c;可能有不同的校验规则。 1.2 使用方法 在实体类中&#xff0c;我们可以利用javax.va…

幂等性解决方案

1、幂等性 在计算机中&#xff0c;表示对【同一个过程】应用【相同的参数】多次和应用一次产生的效果是一样&#xff0c;这样的过程即被称为满足幂等性。 幂等&#xff1a; update user set age 25 where user_id2这中情况无论执行多少次&#xff0c;结果都不受影响&#x…

Java | Leetcode Java题解之第103题二叉树的锯齿形层序遍历

题目&#xff1a; 题解&#xff1a; class Solution {public List<List<Integer>> zigzagLevelOrder(TreeNode root) {List<List<Integer>> ans new LinkedList<List<Integer>>();if (root null) {return ans;}Queue<TreeNode> n…