【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.pswp.cn/bicheng/76995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76995.shtml
英文地址,請注明出處:http://en.pswp.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 三個尺度上…