軟件測試基礎篇——Redis

Redis

Redis數據庫的配置與連接

  1. 解壓redis數據庫的安裝包(建議把解壓后的安裝包放到磁盤的根目錄,方便訪問操作)
  2. 打開【命令行窗口】:win+R
  3. 在命令行窗口,進入到redis安裝目錄中

? 格式一:cd /d redis目錄完整路徑 跨磁盤切換目錄

? 例:cd /d d:\redis

? 格式二:

? ①切換磁盤:磁盤符:

? 例:切換D盤 D:或者d:

? ②切換目錄:cd 目錄名字

? 例:cd redis

  1. 啟動redis數據庫的服務

? 命令:redis-server.exe redis.windows.conf

? mysql端口號:3306,redis端口號:6379

  1. 連接redis數據庫

? 重新打開一個命令行窗口做連接:進入redis安裝目錄

? 命令:redis-cli.exe

  1. 測試:輸入ping命令,得到PONG結果,證明redis數據庫的配置與連接是OK的、

回顧

redis數據庫配置與安裝

  1. 啟動redis數據庫的服務:redis-server.exe redis.windows.conf
  2. 連接redis數據庫:redis-cli.exe

1、Redis數據庫概述

  1. NOSQL:不僅僅是SQL,泛指非關系型數據庫,是對關系型數據庫的一個有力補充,數據的組織方式,大部分都是以【鍵值對key-value】的形式來存儲和管理的,

? 例:redis:鍵值對:鍵名 值——>name “tom” age 18

? MongoDB:鍵值對:鍵名:值 name:”tom” age:18

? 關系型數據庫:RDBMS

  1. redis:遠程字典服務,是==開源免費(開放源代碼,配置文件中的參數可以根據實際情況做出修改),基于內存(數據直接存儲在內存),跨平臺(可以在多個操作系統使用)==的非關系型Key-Value數據庫

  2. redis特征:①數據直接加載到內存中存儲和管理數據;②支持到的數據類型,以及每一種類型提供的操作命令是較多的;③數據的處理(讀寫)速度是較快的;④持久化功能:利用生成的持久化文件,可以避免因異常操作引發數據丟失問題,實現數據的還原恢復操作;⑤redis數據庫可以設置鍵值對數據的有效活動時間,一旦過了該時間,就會被系統直接刪除;⑥支持事務操作:事務:指的是在當前數據庫中一次性并行處理的操作要么全部執行,要么全部取消——>原子性

2、Redis和MySQL對比

  1. 類型:redis:非關系型數據庫 mysql:關系型數據庫
  2. 數據存儲和管理方式(組織方式):redis:鍵值對 mysql:表
  3. 數據的存放位置:redis:基于內存 mysql:放在磁盤
  4. MySQL偏向于【存數據】,redis偏向于【讀取數據】

3、Redis支持的數據類型以及操作命令

  1. redis自帶16個數據庫,庫編號:0-15,默認是在0號庫(第一個庫)

切換數據庫:select 庫編號

備注:redis命令學習建議:==redis命令作用;redis命令的語法格式;==redis命令和參數結合作用

  1. redis數據庫的增刪改查操作

? ①set 鍵名 值 創建/插入鍵值對數據

? ②set 鍵名 新值 修改鍵中的值

? ③get 鍵名 獲取鍵中的值

? ④del 鍵名 刪除鍵中的值

  1. redis數據庫關于鍵Keys的操作命令

    1. exists 鍵名 判斷該鍵是否存在

    2. type 鍵名 查看該鍵的數據類型 string:字符串

      備注:除了列表,set集合,hash集合,有序集合,其它的數據默認歸納為字符串類型

    3. keys 字符模板 查找和該模板匹配的鍵名 ***** 任意,所有

    4. keys * 查找所有的鍵名

    5. randomkey 隨機返回一個存在的鍵

    6. rename 舊鍵名 新鍵名 對鍵進行重命名操作

    7. dbsize 統計鍵的總個數

    8. expire 鍵名 時間s 設置鍵的有效活動時間

    9. ttl 鍵名 獲取鍵的有效活動時間

    10. move 鍵名 庫編號 將當前庫中的鍵移動到指定的庫

    11. flushdb 刪除當前庫中的所有鍵

    12. flushall 刪除所有庫中的所有鍵

    13. set 鍵名 值 ex 時間s 在創建鍵值對數據的同時,設置有效活動時間

    14. exit/quit:退出客戶端(斷開數據庫連接)

    15. info 顯示redis數據庫的屬性信息

  2. Redis數據類型-字符串類型:string

    1. string是redis基本的、默認的數據類型

    2. 提供的操作命令:

      • set/get:創建一組鍵值對數據/獲取一個鍵的值
      • mset 鍵名1 值1 鍵名2 值2 鍵名3 值3…. 向庫中插入多組鍵值對數據
      • mget 鍵名1 鍵名2 鍵名3… 獲取多個鍵的值
      • getset 鍵名 新值 先獲取鍵中原始的值,再把新值賦值給該鍵
      • setnx 鍵名 值 添加鍵值對數據,如果該鍵存在,則什么都不做
      • msetnx 鍵名1 值1 鍵名2 值2… 添加多組鍵值對數據(有一個存在也會影響其它的插入),
      • setex 鍵名 時間s 新值 修改鍵中的值,并設置有效的活動時間
      • incr 鍵名 讓鍵中的值自動加1
      • incrby 鍵名 自定義數字 指定數字的加法操作
      • decr 鍵名 讓鍵中的值自動減1
      • decrby 鍵名 自定義數字 指定數字的減法操作
      • append 鍵名 新值 將新值拼接在鍵中原始值的后方(拼湊在一起)
      • substr 鍵名 開始位置的下標 結束位置下標 對鍵中字符串數據進行截取操作
      • setrange 鍵名 位置下標 新值 得到一個新的字符串(從指定位置開始,拿上新值,替換原始字符串數據,替換范圍取決于新字符串長度)
      • getrange 鍵名 開始位置下標 結束位置下標 對鍵中的字符串進行截取操作 <——>參考substr
      • strlen 鍵名 統計該鍵中字符串長度

回顧
  1. redis特征
  2. redis操作命令:作用,格式

  1. Redis數據類型-List(列表,鏈表)

    1. 概述:列表類型的鍵,可以存儲多個值——>用來插入多個字符串類型的數據值,列表鍵中是可以有重復的值

    2. List列表提供的操作命令:

      • lpush 鍵名 值1 值2 值3… 創建或從列表的頭部插入數據(先寫的數據在下邊)

      • rpush 鍵名 值1 值2 值3… 創建或從列表的尾部插入數據(先寫的數據在上邊)

      • lrange 鍵名 開始位置下標 結束位置下標 查看列表鍵中范圍之內的數據值

      • llen 鍵名 統計列表鍵中值的總個數

      • lindex 鍵名 位置下標 根據下標獲取對應位置上的值

      • lset 鍵名 位置下標 新值 根據下標修改指定位置上的值

      • lrem 鍵名 數量 值 從列表鍵中刪除指定數量的相同值

      • lpop 鍵名 返回并刪除鍵中頭部元素值

      • rpop 鍵名 返回并刪除鍵中尾部元素值

      • linsert 鍵名 before 指定元素值 新值 在指定元素值的前面插入新的值

      • linsert 鍵名 after 指定元素值 新值 在指定元素值的后面插入新的值

      • ltrim 鍵名 開始位置的下標 結束位置的下標

        備注:鍵中只保留截取后的數據

  2. Redis數據類型-Set集合:存放多個字符串類型的數據值,唯一,無序

? set集合類型提供的操作命令:

? ①sadd 鍵名 值1 值2 值3… #創建/向set集合鍵中插入數據

? ②smembers 鍵名 #返回鍵中所有的值

? ③srem 鍵名 值 #從該鍵中刪除指定的數據值

? ④spop 鍵名 #返回并刪除鍵中的一個值

? ⑤smove 鍵名1 鍵名2 值 #將鍵名1的值移動到鍵名2

? ⑥scard 鍵名 #統計鍵中值的總個數

? ⑦sismember 鍵名 值 #檢測該值是否存在于集合中

? ⑧sinter 鍵名1 鍵名2 鍵名3… 求#交集,把這些集合鍵中共有的數據顯示出來

? ⑨sinterstore 新的鍵名 鍵名1 鍵名2 鍵名3… #求交集保存在新的集合鍵中

? ⑩sunion 鍵名1 鍵名2 鍵名3… #求并集,這些集合中的數據融合在一起顯示:相同的保留一個,不同的直接融合

? ?sunionstore 新的鍵名 鍵名1 鍵名2 鍵名3… #求并集,保存在新的鍵中

? ?sdiff 鍵名1 鍵名2… #求差集,鍵名1中值減去鍵名2中共有的,把剩下獨有的數據顯示

? ?sdiffstore 新的鍵名 鍵名1 鍵名2… #求差集,并保存在新的鍵中

? ?srandmember 鍵名 #隨機返回鍵中的一個值

  1. Redis數據類型-Hsah集合:存放【鍵值對】數據集合,每一個hash鍵中,存儲的值都是【鍵值對】,hash:哈希
  • hash類型提供的操作命令:
    1. hset 鍵名 字段名(key) 字段值(value) #生成hash類型集合的鍵,并存入值
    2. hmset 鍵名 字段名1 字段值1 字段名2 字段值2 字段名3 字段值3… #生成hash類型的鍵,并存入多組值
    3. hget 鍵名 字段名 #獲取鍵中某個字段的值
    4. hmget 鍵名 字段名1 字段名2 字段名3… #獲取多個字段值
    5. hgetall 鍵名 #獲取鍵中所有的字段以及字段值
    6. hincrby 鍵名 字段名 增加值 #將鍵中指定字段中存儲的值進行加法操作
    7. hexists 鍵名 字段名 #檢測該字段是否存在于鍵中
    8. hdel 鍵名 字段名 #刪除該鍵中的字段
    9. hlen 鍵名 #統計該鍵中字段的總個數
    10. hkeys 鍵名 #獲取鍵中所有的字段名
    11. hvals 鍵名 #獲取鍵中所有的字段值

  1. redis數據類型-有序集合:zset,用來存儲多個字符串類型的數據的集合,通過每一個值關聯一個分數,然后利用分數達到排序的效果(升序:從小到大)唯一
  • 有序集合提供的操作命令:
    • zadd 鍵名 分數1 值1 分數2 值2 分數3 值3… #生成有序集合類型的鍵并存入值
    • zrange 鍵名 開始位置下標 結束位置下標 #查看鍵中的所有值
    • zrevrange 鍵名 開始位置下標 結束位置下標 #降序查看鍵中的數據
    • zcard 鍵名 #統計該鍵中值的總個數
    • zcount 鍵名 最低分 最高分 #根據分數區間統計值的數量
    • zincrby 鍵名 增加的分數值 值 #給該值進行分數的增加
    • zrank 鍵名 值 #返回該值對應的下標(下標算法:把最小的值看成是第一個元素)
    • zrevrank 鍵名 值 #返回該值對應的下標(下標算法:把最大的值看成是第一個元素)
    • zscore 鍵名 值 查看該值對應的分數
    • zrem 鍵名 值1 值2… #刪除鍵中的數據
    • zscan 鍵名 游標值(0) 查看鍵中所有的值以及關聯的分數
    • zremrangebyscore 鍵名 最低分 最高分 #刪除分數區間內的數據

4、事務的操作

  1. 概述::事務指的是一次可以執行多個操作命令——>把對應的操作命令都放在事務中,一旦執行事務,就會把事務中所包含的所有操作命令全部執行。

備注:在沒有事務介入前,每一個命令都是一個一個執行的

  1. 事務的創建流程:

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

開始事務—–>multi

命令入隊——>各種操作命令

執行事務——>exec

備注:redis數據庫“事務”,并沒有真正做到原子性——>“偽事務”(低版本的)

5、Redis數據庫的備份與恢復

  1. 數據庫備份操作:

? save 備份完成后,生成一個dump.rdb文件,放在redis的安裝目錄

? 備注:有時候備份完成后,找不到或不清楚該文件存在的路徑(redis的安裝目錄):config get dir

  1. 數據庫還原/恢復操作:

只需要把dump.rdb文件,放入到redis目錄下,重啟redis服務即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34764.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34764.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34764.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux安裝Zookeeper

1、Zookeeper簡介 ZooKeeper是一個分布式的&#xff0c;開放源碼的分布式應用程序協調服務&#xff0c;是Google的Chubby一個開源的實現&#xff0c;是Hadoop和Hbase的重要組件。它是一個為分布式應用提供一致性服務的軟件&#xff0c;提供的功能包括&#xff1a;配置維護、域…

自然語言處理從入門到應用——LangChain:記憶(Memory)-[記憶的類型Ⅲ]

分類目錄&#xff1a;《自然語言處理從入門到應用》總目錄 對話令牌緩沖存儲器ConversationTokenBufferMemory ConversationTokenBufferMemory在內存中保留了最近的一些對話交互&#xff0c;并使用標記長度來確定何時刷新交互&#xff0c;而不是交互數量。 from langchain.me…

基于灰狼優化(GWO)、帝國競爭算法(ICA)和粒子群優化(PSO)對梯度下降法訓練的神經網絡的權值進行了改進(Matlab代碼實現)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…

環保行業如何開發廢品回收微信小程序

廢品回收是近年來受到越來越多人關注的環保行動。為了推動廢品回收的普及和方便&#xff0c;我們可以利用微信小程序進行制作&#xff0c;方便人們隨時隨地參與廢品回收。 首先&#xff0c;我們需要注冊并登錄喬拓云賬號&#xff0c;并進入后臺。喬拓云是一個提供微信小程序制作…

數據結構(一):順序表詳解

在正式介紹順序表之前&#xff0c;我們有必要先了解一個名詞&#xff1a;線性表。 線性表&#xff1a; 線性表是&#xff0c;具有n個相同特性的數據元素的有限序列。常見的線性表&#xff1a;順序表、鏈表、棧、隊列、數組、字符串... 線性表在邏輯上是線性結構&#xff0c;但…

【云原生】Pod詳講

目錄 一、Pod基礎概念1.1//在Kubrenetes集群中Pod有如下兩種使用方式&#xff1a;1.2pause容器使得Pod中的所有容器可以共享兩種資源&#xff1a;網絡和存儲。1.3kubernetes中的pause容器主要為每個容器提供以下功能&#xff1a;1.4Kubernetes設計這樣的Pod概念和特殊組成結構有…

Django中級指南:理解并實現Django的模型和數據庫遷移

Django 是一個極其強大的 Python Web 框架&#xff0c;它提供了許多工具和特性&#xff0c;能夠幫助我們更快速、更便捷地構建 Web 應用。在本文中&#xff0c;我們將會關注 Django 中的模型&#xff08;Models&#xff09;和數據庫遷移&#xff08;Database Migrations&#x…

上傳代碼到GitCode

Git 全局設置 git config --global user.name "AnyaPapa" git config --global user.email "fangtaihongqq.com" 添加SSH密鑰 Mac終端輸入命令 cd existing_folder git init git remote add origin gitgitcode.net:Java_1710/test.git git add . git co…

2023國賽數學建模A題思路分析

文章目錄 0 賽題思路1 競賽信息2 競賽時間3 建模常見問題類型3.1 分類問題3.2 優化問題3.3 預測問題3.4 評價問題 4 建模資料 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 競賽信息 全國大學生數學建模…

Mac電腦如何把照片以文件格式導出?

在Mac電腦上&#xff0c;我們經常會拍攝、保存和編輯各種照片。有時候&#xff0c;我們可能需要將這些照片以文件形式導出&#xff0c;以便與他人共享、打印或備份。無論您是要將照片發送給朋友、上傳到社交媒體&#xff0c;還是保存到外部存儲設備&#xff0c;導出照片為文件是…

我的Python教程:使用Pyecharts畫柱狀圖

Pyecharts是一個用于生成 Echarts 圖表的 Python 庫。Echarts 是一個基于 JavaScript 的數據可視化庫&#xff0c;提供了豐富的圖表類型和交互功能。通過 Pyecharts&#xff0c;你可以使用 Python 代碼生成各種類型的 Echarts 圖表&#xff0c;例如折線圖、柱狀圖、餅圖、散點圖…

java不支持解壓rar5的解決辦法--引用本地7zip.exe

由于rar5算法未開源&#xff0c;沒有合適的JAVA依賴能夠解決解壓rar5。在運行中報錯&#xff1a; javacom.github.junrar.exception.RarException: badRarArchive 通過引用本地7zip.exe&#xff0c;命令行執行解決&#xff1a; private static void unZipRar5File(String fileP…

探索可視化應用的嶄新前景

在當今數據驅動的世界中&#xff0c;可視化應用成為了一種強大的工具&#xff0c;能夠將復雜的數據轉化為易于理解和分析的圖形形式。隨著技術的不斷發展和創新&#xff0c;可視化應用正迎來嶄新的前景。本文將介紹可視化應用的定義、重要性以及當前的發展趨勢&#xff0c;并探…

Controller是單例還是多例?

Controller是單例還是多例&#xff1f; controller默認是單例的&#xff0c;不要使用非靜態的成員變量&#xff0c;否則會發生數據邏輯混亂。正因為單例所以不是線程安全的。 我們下面來簡單的驗證下&#xff1a; package com.riemann.springbootdemo.controller;import org…

docker配置文件

/etc/docker/daemon.json 文件作用 /etc/docker/daemon.json 文件是 Docker 配置文件&#xff0c;用于配置 Docker 守護進程的行為和參數。Docker 守護進程是負責管理和運行 Docker 容器的后臺進程&#xff0c;通過修改 daemon.json 文件&#xff0c;可以對 Docker 守護進程進…

不做Linux就沒前途嗎?

答案當然是——并不會 我晚上回來的時候跟一個今年的畢業生聊天&#xff0c;他入職了一家公司&#xff0c;但是從事的不是Linux相關的工作。 我這里想說的是&#xff0c;做Linux可以賺錢&#xff0c;Linux現在是全世界最牛逼的開源項目一點都不為過&#xff0c;但是Linux也不是…

NLP(六十五)LangChain中的重連(retry)機制

關于LangChain入門&#xff0c;讀者可參考文章NLP&#xff08;五十六&#xff09;LangChain入門 。 ??本文將會介紹LangChain中的重連機制&#xff0c;并嘗試給出定制化重連方案。 ??本文以LangChain中的對話功能&#xff08;ChatOpenAI&#xff09;為例。 LangChain中的重…

【Mysql】數據庫基礎與基本操作

&#x1f307;個人主頁&#xff1a;平凡的小蘇 &#x1f4da;學習格言&#xff1a;命運給你一個低的起點&#xff0c;是想看你精彩的翻盤&#xff0c;而不是讓你自甘墮落&#xff0c;腳下的路雖然難走&#xff0c;但我還能走&#xff0c;比起向陽而生&#xff0c;我更想嘗試逆風…

Centos 7 出現 write error (disk full?)

問題 mysql 導入任務時&#xff0c;由于導出的 sql 文件是在很大 &#xff08;30G&#xff09;&#xff0c;利用 SQLDumpSpliter 切割工具 切成幾個 1G 大小的 sql 文件 結果在導入大半天&#xff0c;突然報錯 &#xff08;另一個服務器上更慘&#xff0c;都導入兩天快完成的…