Redis数据库(一):Redis数据库介绍与安装

        Redis是一种高性能的开源内存数据库,支持多种数据结构(如字符串、列表、集合等),具有快速的读写速度。它提供持久化、主从复制、高可用性和分布式部署等功能适用于缓存、实时分析、消息队列等应用场景。Redis使用简单,广泛应用于需要快速数据存取和处理的领域。从今天开始,我们学习Redis数据库。

一、Redis数据库安装

        Redis数据库的安装主要有两种方式,一种是下载源码安装,一种是在终端执行命令。

1.1 下载源码安装

1.2 终端执行命令安装

1.2.1 服务器的停止与运行命令

service redis-server start/stop/restart 启动 redis 服务器端/关闭/重启, 要在管理员的root权限下执行。

1.2.2 Redis的配置文件

redis的配置文件可以进行修改(必须要进入管理员身份),比如端口,绑定的IP地址。

 

1.3 运行客户端

redis-cli 运行客户端连接服务器,然后给它发送一个ping,它会回复我们PONG,表明连接成功。

二、前言(了解)

就数据的存储而言,服务器的数据存储设计大概经历了一下几个过程:

2.1 单机MySQL时代

这种模式下的瓶颈:

  1. 数据量太大,一个机器存放不下
  2. 数据的索引太大,一个机器的内存放不下
  3. 访问量(读写混合)太大,一个服务器承受不住

2.2 缓存 Memcached+读写分离

        网站上80%的情况都是在读,每次都去查询数据库,效率很低。这时候可以加入缓存机制,第一次查询去MySQL中读取数据,将数据返回给用户的同时,在缓存中也存储下来。第二次访问,就可以直接从缓存中读取,这样速度就非常快了。

2.3 分库分表 + 水平拆分(MySQL集群)

       但是随着社会的发展,要存储数据的类型(音乐,视频,地理位置,人际交往圈、用户自己产生的数 据,用户日志等)也越来越繁多,数据量也爆发式增长。这样MySQL等关系型数据库就越来越不够用 了!NoSQL数据库就开始进入人们的视野!NoSQL数据库可以很好的解决这些问题。 

2.4 什么是NoSQL

NoSQL(Not Only SQL) 泛指非关系型数据库。

2.4.1 NoSQL的特点

  1. 方便扩展(数据之间没有关系)
  2. 大数据量高性能(Redis写8w/s, 读11w/s,NoSQL的缓存记录级是一种细粒度的,性能会更高)
  3. 数据类型是多样型的! 不需要事先设计数据库,随取随用
  4. 存储方式多样, 键值对,列存储,文档存储,图形数据库
  5. 没有固定的查询语言

2.4.2 NoSql的四大分类

三、Redis数据库介绍

3.1 Redis的基本概念

       Redis是一种非关系型数据库,它也是一个C/S结构(服务器-客户端),它的端口号是6379, 虽然它的数据主要是放在在内存中,但是它也可以实现可持久化,由于数据是放在内存中,因此,它的数据访问速度比较快,它可以与MySQL搭配使用,  Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,可以用作数据库、缓存和消息中间件

        它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集 合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和地理空间 (geospatial) 索引半径查询。 Redis 内置了复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的磁盘持久化 (persistence)-- RDB和AOF , 并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)。

3.2 Redis的基本操作

3.2.1 切换数据库     

        Redis默认有16个数据库,默认使用的是第0个数据库,可以通过select切换数据库。Redis的命令对大小写不敏感,切换数据库,格式: select index

3.2.2 查看数据的大小

        这里其实查看的数据的条数,格式: dbsize

3.2.3 查看所有的键

       查看所有的key,格式: keys *

3.2.4 清空数据库

  1. 清空当前数据库:flushdb
  2. 清空所有的数据库(16个数据库):flushall

3.3 Redis是单线程的

至此,Redis数据库第一节就介绍完毕,都是一些简单的操作,熟练即可,没有什么难度,更多精彩内容见后期博客!感谢阅读,如果喜欢,点赞加关注!

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

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

相关文章

UE5 场景物体一键放入蓝图中

场景中,选择所有需要加入到蓝图的模型或物体。 点击 蓝图按钮,点击“将选项转换为蓝图” 在创建方法中,选择“子Actor”或着 “获取组件” 如果需要保持相对应的Actor的父子级别(多层),那么选择“获取组件…

计算机组成原理 | 数据的表示、运算和校验(4)基本运算方法

补码加减(运算与控制) (-Y)补 [Y补]变补,这个要好好理解 (-Y)补:先将Y的符号位置反,在求-Y的补码(数字为变反加1) [Y补]变补:先求Y的补码(数字为变反加1)&…

protobuf实践+生成C++代码的解析

目录 1.实践1(简单使用) 2.实践2(存储列表类数据) 3.实践3(定义RPC方法) 4.解析protobuf的message类 5.解析protobuf的service类 6.Rpcchannel是什么呢? 1.实践1(简单使用&…

Django中,update_or_create()

在Django中,可以使用update_or_create()方法来更新现有记录或创建新记录。该方法接受一个字典作为参数,用于指定要更新或创建的字段和对应的值。 update_or_create()方法的语法如下: 代码语言:python obj, created Model.obje…

python遍历文件夹中所有图片

python遍历文件夹中的图片-CSDN博客 这个是之前的版本,现在这个版本会更好,直接进来就在列表中 path glob.glob("1/*.jpg")print(path)print(len(path))path_img glob.glob("1/*.jpg")path_img.extend(path)print(len(path_img))…

问题解决:数据库自增id到最大报错

pgsql数据库id自增到长度问题: django.db.utils.DataError: nextval: reached maximum value of sequence "ip_prefix_info_id_seq" (32767) schema_name: ip_management_app table_name: ip_prefix_info # 先把自增id改到serial8,范围改大#…

行列视(RCV)在系统管理中的应用:解决生产型企业数据治理的挑战

行列视(RCV)作为一款面向生产型企业的综合性数据应用系统,在系统管理中扮演着至关重要的角色,特别是在解决生产型企业数据治理的挑战方面,表现出了卓越的性能。 首先,生产型企业面临着复杂而繁琐的数据治理…

学期结束如何发布期末成绩?

当期末的试卷最后一张被收起,当教室里的喧嚣逐渐沉寂,学生们的心中充满了对成绩的期待与忐忑。期末成绩,关乎着学生的心情,更关系到他们的未来学习动力。那么,如何在保护学生隐私的同时,高效地公布成绩呢&a…

vscode cmake debug 调试

在 VSCode 中调试使用 CMake 编译的程序,按照以下步骤进行: 1. **安装必要的扩展:** - 打开 VSCode,并确保你已经安装了以下扩展: - C/C(由 Microsoft 提供) - CMake - CMak…

Python Sqlalchemy基础使用

Python Sqlalchemy基础使用 Python Sqlalchemy基础使用基本使用创建Session创建ORM对象查询插入 进阶操作插入存在时更新执行SQL Python Sqlalchemy基础使用 这里记录一下,在编写python代码过程中使用Sqlalchemy的封装和基本使用方法。 (持续完善ing) 基本使用 …

代码随想录算法训练营Day48|188.买卖股票的最佳时机IV、309.最佳买卖股票时间含冷冻期、714.买卖股票的最佳时机含手续费

买卖股票的最佳时机IV . - 力扣(LeetCode) 至多可以购买k次,相比买卖股票的最佳时机III至多购买2次,区别在于次数不确定。 每买卖一次,dp数组的第二维度加2,dp数组的第二维度为2k1(0-2k&…

TDengine 3.2.3.0 集成英特尔 AVX512!快来看看为你增添了哪些助力

在当今的 IoT 和智能制造领域,海量时序数据持续产生,对于这些数据的实时存储、高效查询和分析已经成为时序数据库(Time Series Database,TSDB)的核心竞争力。作为一款高性能的时序数据库,TDengine 不仅采用…

Pandas数据分析:掌握agg()方法的高级应用“

今天一个知识点: agg() 方法的 func 参数可以传入单个函数或函数列表。 agg() 方法在Pandas库中用于对DataFrame或Series的列进行聚合操作。func 参数可以传入单个(值得注意的是,这里数据是一个单个而不是多个的内容,自己在这个…

【全开源】沃德会务会议管理系统(FastAdmin+ThinkPHP+Uniapp)

沃德会务会议管理系统一款基于FastAdminThinkPHPUniapp开发的会议管理系统,对会议流程、开支、数量、标准、供应商提供一种标准化的管理方法。以达到量化成本节约,风险缓解和服务质量提升的目的。适用于大型论坛、峰会、学术会议、政府大会、合作伙伴大会…

docker 安装达梦8

背景 X86-64架构使用Docker安装dm8_20240422_x86_rh6_64_rq_std_8.1.3.100_pack2.tar 1.下载Docker安装包 达梦官网下载dm8_20240422_x86_rh6_64_rq_std_8.1.3.100_pack2.tar安装包 快速下载通道: 达梦镜像包 2.将安装包上传至服务器,并加载镜像 拷…

结合人工智能的在线教育系统:开发与实践

人工智能(AI)正在革新各行各业,教育领域也不例外。结合AI技术的在线教育系统能够提供个性化的学习体验、智能化的教学辅助和高效的数据分析,从而大大提升教育质量和学习效果。本文将探讨结合AI技术的在线教育系统的开发与实践&…

如何调整C#中数组的大小

前言 数组存储多个相同类型的一种非常常用的数据结构。它长度是固定,也就是数组一旦创建大小就固定了。C# 数组不支持动态长度。那在C#中是否有方法可以调整数组大小呢?本文将通过示例介绍一种调整一维数组大小的方法。 方法 数组实例是从 System.Arr…

Type.GetTypeFromProgID 调用com组件

Type.GetTypeFromProgID 方法用于通过程序标识符(ProgID)获取 COM 类型。ProgID 是一个字符串标识符,用于标识 COM 组件。它通常在注册表中配置,并指向一个具体的 COM 类的 CLSID(类标识符)。 什么是 Prog…

【数据结构与算法】顺序查找、折半查找、分块查找

文章目录 顺序查找实现对有序表的顺序查找 二分查找(折半查找)实现二分查找判定树 分块查找(索引顺序查找)最理想的分块情况 顺序查找 顺序查找,又叫线性查找。适用于线性表。它的核心思路是从线性表的一端开始&#…

Unity的ScrollView滚动视图复用

发现问题 在游戏开发中有一个常见的需求,就是需要在屏幕显示多个(多达上百)显示item,然后用户用手指滚动视图可以选择需要查看的item。 现在的情况是在100个data的时候,Unity引擎是直接创建出对应的100个显示item。 …