日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【学习记录】macOS的Redis安装及基本使用

發布時間:2024/7/23 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习记录】macOS的Redis安装及基本使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【學習記錄】macOS的Redis安裝及基本使用

    • 一. Redis的安裝與啟動
    • 二. 簡單使用
      • ① 嘗試插入第一個key-value
      • ② Redis的數據類型與基本使用
        • 字符串
        • 列表
        • 字典(哈希表)
        • 集合
        • 有序集合
    • 三. 雜亂無章的筆記

一. Redis的安裝與啟動

打開終端,輸入以下命令即可安裝

brew install redis

安裝成功后, 輸入以下命令通過brew來啟動Redis

brew services start redis

接下來啟動服務端

redis-cli

二. 簡單使用

更多命令可到菜鳥教程里查詢。這個模塊只是對這些結構的簡單描述。

① 嘗試插入第一個key-value

插入鍵值對 114514 - tiansuo

set 114514 tiansuo

而后通過鍵值114514即可獲得對應值tiansuo

get 114514

② Redis的數據類型與基本使用

Redis中有五種數據類型:

  • 字符串 String
  • 列表 List
  • 字典 Hash
  • 集合 Set
  • 有序集合 Sorted Set

字符串

感覺和C++,JAVA等語言里的String大同小異。
下列舉兩個命令例子

  • append 命令:拓展字符串 (append key value)
append 114514 haoer

輸入這行命令后,鍵值對更新成 114514 - tiansuohaoer

  • type命令:獲取鍵的數據類型的值
type 114514 // 返回 String

列表

感覺像是數組和棧、隊列的縫合怪。
下標從0開始,有如下功能:

  • 添加列表:lpush / rpush listName value, l / r分別代表從左/右開始添加元素
  • 彈出元素:lpop / rpop
  • 由下標獲取值:lindex key index
  • 獲取范圍下標內的所有值:lrange key start stop 如 lrange listOne 0 3

字典(哈希表)

可以由以下這個初始化流程來了解字典的結構

hset person name jack // 新建一個名為person的字典,其中一個鍵值name對應值jack hset person age 20 // 在字典person中,新增一個鍵值age對應值20 hgetall person // 獲取當前字典person的所有鍵值與值 hkeys person // 獲取當前字典person的所有鍵值 hvals person // 獲取當前字典person的所有值

集合

很熟悉的一個結構了, 無非就是集合的交并差。

有序集合

增加一個Score屬性,用來對集合成員進行一個排序。
集合成員唯一,但是分數不唯一,即不同成員可以分數相同。

三. 雜亂無章的筆記

筆記

  • Redis有著更為復雜的數據結構并且提供對他們的原子性操作,數據結構對程序員透明,無需進行額外的抽象
  • Redis運行在內存中但是可以持久化到磁盤,進行高速讀寫時需要權衡內存
  • string 是 redis 最基本的類型,是二進制安全的,可以包含任何數據。比如jpg圖片或者序列化的對象。
  • DEL keyname 用于刪除
  • 客戶端啟動:本地:redis-cil 遠程:redis-cli -h host -p port -a password

    eg: redis-cli -h 127.0.0.1 -p 6379 -a “mypass”

    訂閱:SUBSCRIBE name

    發送:PUBLISH name “message”

    事務

    Redis 事務可以一次執行多個命令, 并且帶有以下三個重要的保證:

    • 批量操作在發送 EXEC 命令前被放入隊列緩存。
    • 收到 EXEC 命令后進入事務執行,事務中任意命令執行失敗,其余的命令依然被執行。
    • 在事務執行過程,其他客戶端提交的命令請求不會插入到事務執行命令序列中。

    一個事務從開始到執行會經歷以下三個階段:

    • 開始事務。
    • 命令入隊。
    • 執行事務。
    redis 127.0.0.1:6379> MULTI // 以 MULTI 開啟一個事務 OKredis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUEDredis 127.0.0.1:6379> GET book-name QUEUEDredis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUEDredis 127.0.0.1:6379> SMEMBERS tag QUEUEDredis 127.0.0.1:6379> EXEC // 一并執行事務中的所有命令,此處事務不具有原子性,命令有 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series"2) "C++"3) "Programming"
  • Redis 發布訂閱:消息無法持久化,如果出現網絡斷開、Redis 宕機等,消息就會被丟棄。

    而 Redis Stream 提供了消息的持久化和主備復制功能

  • NoSql:解決高并發、高可用、高可擴展,大數據存儲等一系列問題而產生的數據庫解決方案.

    叫非關系型數據庫,它的全名Not only sql。它不能替代關系型數據庫,只能作為關系型數據庫的一個良好補充。

    分類:

    • 鍵值(Key-Value)存儲數據庫 :典型應用: 內容緩存,主要用于處理大量數據的高訪問負載。 數據模型: 一系列鍵值對

      優勢: 快速查詢 劣勢: 存儲的數據缺少結構化

    • 列存儲數據庫 典型應用:分布式的文件系統

    • 文檔型數據庫,比如 MongoDB ,典型應用:Web應用(與Key-Value類似,Value是結構化的)

    • 圖形(Graph)數據庫 ,圖結構

  • Redis 應用場景:緩存(數據查詢、短連接、新聞內容、商品內容等等)。(最多使用) 分布式集群架構中的session分離。 聊天室的在線好友列表。 任務隊列。(秒殺、搶購、12306等等) 應用排行榜。 網站訪問統計。 數據過期處理(可以精確到毫秒)

  • Redis 持久化方案

    • Rdb 方式: Redis 默認的方式,redis 通過快照方式將數據持久化到磁盤中。

      一旦redis非法關閉,那么會丟失最后一次持久化之后的數據。

    • Aof 方式:操作一次 redis 數據庫,則將操作的記錄存儲到 aof 持久化文件中。

  • Redis 主從復制:持久化保證了即使redis服務重啟也不會丟失數據,因為redis服務重啟后會將硬盤上持久化的數據恢復到內存中。

    但是當redis服務器的硬盤損壞了可能會導致數據丟失,如果通過redis的主從復制機制就可以避免這種單點故障,如下圖:

    主redis中的數據有兩個副本(replication)即從redis1和從redis2,即使一臺redis服務器宕機其它兩臺redis服務也可以繼續提供服務

    主redis中的數據和從redis上的數據保持實時同步,當主redis寫入數據時通過主從復制機制會復制到兩個從redis服務上。

    只有一個主redis,可以有多個從redis。

    主從復制不會阻塞master,在同步數據時,master 可以繼續處理client 請求

    主機一旦發生增刪改操作,那么從機會將數據同步到從機中. 從機不能執行寫操作

    一個redis可以即是主又是從,如下圖:

  • 總結

    以上是生活随笔為你收集整理的【学习记录】macOS的Redis安装及基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。