【redis】初识redis

初识redis

Redis 是一种基于键值对(key-value) 的 NoSQL 的数据库,它与很多键值数据库不同, Redis 中的值可以是 string(字符串) 、hash(哈希)、list(链表)、set(集合)、bitmap(位图)、Zset(有序集合)、GEO(地理位置信息定位) 等多种Value 。 因此 Redis 可以满足很多的应用场景,并且 Redis 还会将所有数据存放在 内存 中,大大加速了数据读写的速度。并且 Redis 会将所有内存中数据利用 快照日志 的形式存放在硬盘上面,保证内存中的数据不会因为意外丢失。

redis特性

  1. 速度快
    Redis执行命令的速度非常快,那为什么 Redis 执行命令的速度这么快呢?大概分为四点:
    1.1 数据存储在内存中,没有磁盘级 I / O
    1.2 **高效的数据结构,通过动态编码和紧凑存储优化内存和计算 **
    1.3 单线程加上 I / O 多路复用,,避免了多线程上下文的切换以及多线程锁的竞争,并且通过非阻塞 I / O 多路复用,使用 epoll / kqueue 技术监听多个客户端连接,通过事件驱动模型处理请求,单线程就可管理多个链接,减少了资源消耗
    1.4 智能内存管理,通过分配器和淘汰策略平衡性能与资源

  2. 基于键值对的结构化数据结构处理器

  3. 丰富的功能
    3.1 提供了键过期功能
    3.2 提供了发布订阅功能
    3.3 支持lua脚本,可以利用Lua创造出新的Redis 命令
    3.4 提供了简单的事务功能,在一定程度上保证了事务的特性
    3.5 提供了流水线功能,客户端能够将一批命令一次性传到Redis(类似于Linux中的管道),减少了网络开销

4.简单稳定

5.客户端语言多,支持 Redis 的客户端语言非常多,比如:C、C++、JAVA、PHP、Python、Nodejs等。

6.持久化
Redis 提供了两种持久化方式:RDB(快照) 和 AOF(日志),可以使用上面两种方式将内存数据保存在磁盘中。
6.1 RDB 是通过定期生成数据集快照来保存数据的持久化方式。它会在指定的时间间隔内将内存中的数据集快照写入磁盘。具体过程是通过fork一个子进程,将数据集写入临时文件,写入成功后再替换之前的文件。
6.2 AOF 是通过记录所有写操作日志来保存数据的持久化方式。每当Redis执行一个改变数据集的命令时,这个命令就会被追加到AOF文件的末尾。AOF还支持后台重写,以减少文件大小。
在这里插入图片描述
7.主从复制
Redis 提供了主从复制功能,提供了多个相同数据的 Redis 副本。
8.高可用和分布式
Redis 提供了高可用的Redis哨兵,保证了Redis 节点的故障发现和故障自动转移。也提供了Redis 集群,提供了高可用、读写和容量的扩展性。

redis重要文件及作用

这里展示的是通过 ATP包管理器 安装的 redis下的可执行文件以及脚本的路径,通过 源码 安装的可能有所不同(通常在/usr/local/reids/bin中)

  1. /usr/bin/redis-benchmark ,其用于对 Redis 做性能基准测试的工具
  2. /usr/bin/redis-check-aof,用于修复 AOF 文件所用的工具
  3. /usr/bin/redis-check-rdb,用于修复 RDB 文件所用的工具
  4. /usr/bin/redis-cli,用于 Redis 的客户端程序
  5. /usr/bin/redis-sentinelRedis 的哨兵程序
  6. /usr/bin/redis-server,其是 Redis 的服务器程序,
  7. /usr/libexec/redis-shutdown,停止 Redis 服务的脚本

redis 配置文件

/etc/redis-sentinel.config是Redis Sentinel的高可用服务器配置文件,用于监控主从节点并在主节点故障时自动故障转移。
/etx/redis.config 是redis的配置文件

redis持久化文件存储目录

/var/lib//redis/是存储 Redis 持久化生产的 AOFRDB 文件的目录。

redis日志文件目录

/var/log/redis 会保存 Redis 运行产生的日志文件。

redis命令行客户端

我们可以通过如下两种方式来连接 redis 服务器.

  1. redis-cli -h {host} -p {port}

[root@host ~]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set key hello
OK
127.0.0.1:6379> get key
“hello”

  1. redis-cli -h {host} -p {port} {command}

[root@host ~]# redis-cli -h 127.0.0.1 -p 6379 ping
PONG
[root@host ~]# redis-cli -h 127.0.0.1 -p 6379 set key hello
OK
[root@host ~]# redis-cli -h 127.0.0.1 -p 6379 get key
“hello”

(注意:这里由于我们连接的是本机上的 redis 服务 127.0.0.1,端口号使用的也是默认的端口 6379 ,所以这里其是可以省略 ip 地址和 端口号

在这里插入图片描述

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

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

相关文章

UE5 制作方块边缘渐变边框效果

该效果基于之前做的(https://blog.csdn.net/grayrail/article/details/144546427)进行修改得到,思路也很简单: 1.打开实时预览 1.为了制作时每个细节调整方便,勾选Live Update中的三个选项,开启实时预览。…

基于springboot的“嗨玩旅游网站”的设计与实现(源码+数据库+文档+PPT)

基于springboot的“嗨玩旅游网站”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:springboot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统首页界面 系统注册…

grafana/loki 部署搜集 k8s 集群日志

grafana/loki 和 grafana/loki-stack 的区别 ​Grafana 提供了多个 Helm Chart 用于在 Kubernetes 集群中部署 Loki 及相关组件,其中主要包括 grafana/loki 和 grafana/loki-stack。​它们的主要区别如下:​ 1.grafana/loki Helm Chart: 专注于 Loki 部署: 该 Chart 专门…

Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置

作者:濯光、翼严 Kubernetes 配置管理的局限 目前,在 Kubernetes 集群中,配置管理主要通过 ConfigMap 和 Secret 来实现。这两种资源允许用户将配置信息通过环境变量或者文件等方式,注入到 Pod 中。尽管 Kubernetes 提供了这些强…

python自动化浏览器标签页的切换

#获取全部标签页的句柄返回句柄的列表 handleswebdriver.window_handles#获取全部标签页的句柄返回句柄的列表 print(len(handles)) 切换标签页 handleswebdriver.window_handles webdriver.switch_to.window(handles[index])#切换到第几个标签页就写几 关闭标签页 关闭标…

微信小程序组件传参

微信小程序组件传参感觉和vue还是挺像的 父组件向子组件传参 在小程序中父组件子组件传参,主要使用properties属性。演示下: 创建组件文件夹component,创建组件demoComponent,记得创建的时候选择组件,不是page页面 …

【嵌入式硬件】LAN9253说明书(中文版)

目录 1.介绍 1.1总体介绍 1.2模式介绍 1.2.1微控制器模式: 1.2.2 扩展模式 1.2.3 数字IO模式 1.2.4 各模式图 2.引脚说明 2.1 引脚总览 2.2 引脚描述 2.2.1 LAN端口A引脚 2.2.2 LAN端口B引脚 2.2.3 LAN端口A和、B电源和公共引脚 2.2.4 SPI/SQI PINS 2.2.5 分布式时…

【C语言基础】双指针在qsort函数中的应用

在C语言中使用 qsort 对字符串数组(如 char* 数组)排序时,必须转换为双指针(char**),这是由字符串数组的内存结构和 qsort 的工作原理决定的。以下是详细解释: 一、底层原理分析 1. 字符串数组…

批处理(Batch Processing)的详解、流程及框架/工具的详细对比

以下是批处理(Batch Processing)的详解、流程及框架/工具的详细对比: 一、批处理核心概念 定义: 批处理是离线处理大量数据或任务的自动化流程,特点是无人值守、高吞吐量、资源密集型,常用于数据清洗、报表…

基于FreeRTOS和LVGL的多功能低功耗智能手表(APP篇)

目录 一、简介 二、软件框架 2.1 MDK工程架构 2.2 CubeMX框架 2.3 板载驱动BSP 1、LCD驱动 2、各个I2C传感器驱动 3、硬件看门狗驱动 4、按键驱动 5、KT6328蓝牙驱动 2.4 管理函数 2.4.1 StrCalculate.c 计算器管理函数 2.4.2 硬件访问机制-HWDataAccess 2.4.3 …

【初阶数据结构】——算法复杂度

一、前言 1、数据结构是什么? 数据结构(Data Structure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数 据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤,所以我们要学各式各样的数据结构, 如&…

记录 | Pycharm中如何调用Anaconda的虚拟环境

目录 前言一、步骤Step1 查看anaconda 环境名Step2 Python项目编译器更改 更新时间 前言 参考文章: 参考视频:如何在pycharm中使用Anaconda创建的python环境 自己的感想 这里使用的Pycharm 2024专业版的。我所使用的Pycharm专业版位置:【仅用…

linux如何用关键字搜索日志

在 Linux 系统中搜索日志是日常运维的重要工作,以下是几种常用的关键字搜索日志方法: 1. 基础 grep 搜索 bash 复制 # 基本搜索(区分大小写) grep "keyword" /var/log/syslog# 忽略大小写搜索 grep -i "error&…

K-均值聚类机器学习算法的优缺点

K-均值聚类是一种常用的无监督学习算法,用于将具有相似特征的数据点聚集到一起。以下是K-均值聚类算法的步骤及其优缺点: K-均值聚类算法步骤: 初始化:随机选择K个点作为初始的聚类中心。分配数据点:将每个数据点分配…

AI驱动SEO关键词实战策略

内容概要 AI驱动的SEO关键词优化体系通过技术融合实现了策略升级。该框架以语义理解模型为基础,结合实时流量监测与行业数据库,构建了包含关键词挖掘、竞争评估、内容适配三大核心模块的闭环系统。通过自然语言处理(NLP)技术解析…

Golang|在线排查协程泄漏

根据我们的代码,前5毫秒内,每隔1毫秒就会来一个请求,5毫秒之后由于前面的协程执行完,后面又会来新的协程,所以协程数目会保持稳定但是代码一运行,协程数量一直增长,发生了协程泄漏 我们可以list…

Java项目之基于ssm的QQ村旅游网站的设计(源码+文档)

项目简介 QQ村旅游网站实现了以下功能: 管理员权限操作的功能包括管理景点路线,板块信息,留言板信息,旅游景点信息,酒店信息,对景点留言,景点路线留言以及酒店留言信息等进行回复,…

高级语言调用C接口(四)结构体(2)-Python

这个专栏好久没有更新了,主要是坑开的有点大,也不知道怎么填,涉及到的开发语言比较多,写起来比较累,需要看的人其实并不多,只能说,慢慢填吧,中间肯定还会插很多别的东西,…

JAVA 主流微服务常用框架及简介

Java微服务架构的优势在于其轻量级、高效资源利用,支持快速开发与灵活部署,拥有强大的生态系统与跨平台兼容性,能够实现高性能与稳定性,并允许独立扩展与技术栈多样性。然而,其劣势也不容忽视,包括架构复杂…

儿童后期至青少年早期脑网络隔离增强的发育机制研究

目录 1 研究背景 2 研究方法 2.1 纵向数据集 2.2 图像预处理 2.3 个体化区域放射组学相似网络构建 2.4 分离度(模块化)度量 2.5 分离度指数发育变化的建模 2.6 分离指数与认知表现的相关性分析 2.7 成像转录组分析 3 研究结果 3.1 三个尺度上…