當前位置:網站首頁>七天玩轉Redis | Day1、Redis認識與環境配置

七天玩轉Redis | Day1、Redis認識與環境配置

2022-01-27 18:07:29 灰小猿

號外號外:小猿和CSDN聯合推出的“七天玩轉Redis,打卡還能領周邊”活動開始啦!點擊查看報名及活動細則,輕輕松松和小夥伴們一起拿獎勵吧!

PS:零基礎也能入門Redis喲,快去一起參與拿周邊吧!

博主簡介‍️:國內某一線互聯網公司Java工程師,業餘自媒體創作者,CSDN博客專家,Java領域優質創作者,華為雲享專家,華為HDZ核心成員,曾發錶並出版ISEAE信息科學國際論文,全網累計發錶技術博客60餘萬,公眾號【碼猿編程日記】作者,堅信每一次敲動鍵盤都能讓生活變得更智能,世界變得更有趣!

課前答疑:很多小夥伴問我零基礎或者根本沒有使用過Redis,可以學習嘛?當然是可以的!充分考慮到小夥伴們的學習程度有所不同,所以本次課程的所有操作都是在Windows環境下進行的,不會依賴太多的環境配置,且上手容易。已經學習過Redis的小夥伴們同樣可以再學習一遍,溫故而知新,還能拿CSDN定制周邊!何樂而不為呢

今日學習內容

因為今天是我們“七天玩轉Redis”課程的第一天,所以今天學習的主要內容就是:認識Redis和它的主要作用和使用場景,在自己的電腦上安裝Redis,最後再學習幾個基本的命令操作就可以啦!

難度系數:

學習完成之後別忘記及時打卡喲!

一、認識Redis

學習Redis之前當然要知道什麼是Redis了,如果不知道Redis的小夥伴們,MySQL應該知道吧?MySQL應該是我們很多人接觸的第一個關系型數據庫,除此之外,常見的關系型數據庫還有SQL Server、Oracle、SQLite等,

事物的存在都是具有相對性的,那麼既然有關系型數據庫,那麼就一定會有非關系型數據庫啦,沒錯,Redis就是一個最典型的非關系型數據庫,還有之後可能會用到的MongoBD數據庫也是非關系數據庫,

(1)關系型數據庫與非關系型數據庫

那麼問題來啦!

關系型數據庫和非關系型數據庫有什麼區別呢?

  • 1、數據存儲方式不同:關系數據庫為錶格形式,非關系數據庫為文檔或圖結構
  • 2、擴展方式不同:關系數據庫可縱向擴展,可提高處理能力,非關系數據庫為天然分布式,通過更多的數據服務器來分擔負載
  • 3、事務處理支持不同:關系數據庫善於處理事務原子性細粒度控制,方便事務回滾,非關系數據庫著重於處理大數據。且一般不保證遵循ACID原則(即原子性、一致性、隔離性、持久性)

Redis的全稱叫“Remote Dictionary Server”,翻譯過來就叫“遠程字典服務”,所以我們可以換個思路來理解一下Redis數據庫,就像我們拿字典去查字是一樣的,我們會先去找這個字對應的索引,每一個索引都對應一個唯一的字。Redis就是這樣的一個存儲思路。Redis中的數據是以key-value的形式存儲的,其中的key(鍵)就相當於字典中字的索引,value(值)就相當於字典中索引對應的字。所以Redis中數據的存儲原理,其實就是一個一個的key-value鍵值對!因此Redis又可以被叫做key-value數據庫。

而key-value數據庫就是非關系型數據庫的一個分類。它的特點是具有極高的並發讀寫性能,能够適用於高性能並發讀寫的場景,一般也會用作數據緩存。

除此之外,非關系型數據庫還包括:面向海量數據訪問的面向文檔數據庫、面向搜索數據內容的搜索引擎、面向可擴展性的分布式數據庫。關於其他這幾種數據庫的特點,我在這一就不一一贅述啦,小夥伴們可以把它作為這篇文章的一個課後作業去總結一下,我們這篇文章主要還是以講Redis為主啦!

(2)Redis的主要使用場景

我們現在知道了,Redis具有極高的並發讀寫性能,那麼Redis數據庫在實際的開發中都有哪些使用場景呢?

我們根據Redis的特點來對它的使用場景簡單劃分一下,你就會發現Redis可以做的事情其實還是非常多的。

  • 高性能高並發
    • 做數據緩存,在查詢數據庫之前,先去Redis中查找緩存,可以减少查閱數據庫的時間,
    • 秒殺系統
  • 豐富的數據格式
    • 省市區錶、字典錶、地圖站點
    • Set集合,可用於查找兩個人的共同好友
  • 單線程
    • 分布式鎖
  • 自動過期
    • 做短信驗證碼
    • 具有時間限制的商品顯示

上面的使用場景,只是我根據Redis的特點簡單的羅列出了幾個,後面的文章中我也會和大家介紹Redis在一些場景中的具體使用,當然Redis的使用場景肯定不僅限於這些,其他的還需要根據實際應用場景去使用啦!

現在我們知道了Redis是什麼,能做什麼,接下來就是Redis怎麼用的問題了,因為考慮到很多小夥伴們是第一次接觸Redis,沒有Linux環境,所以我們在Windows環境下講解Redis的使用,其實和Linux環境下基本是一樣的。

二、Windows環境下安裝Redis

Windows環境下安裝Redis非常簡單,首先去Redis的官網下載Redis的安裝包,

Redis的Windows版本官方下載地址https://github.com/tporadowski/redis/releases

直接下載zip格式的壓縮包

解壓之後得到如下的文件目錄:

其中幾個比較常用的文件,我已經在圖片中給大家標注出來了,

使用命令行方式運行Redis

接下來就是啟動一下Redis,看一下下載解壓的文件是否有問題了,常用的啟動Redis的方式是通過命令行的方式,

打開cmd命令行,切換到Redis的目錄下,運行如下命令即可:

redis-server.exe redis.windows.conf

啟動之後。如果看到如下這樣的界面,說明你的Redis安裝成功了,這也意味著現在Redis服務已經在你的電腦上運行著了,

 這個時候Redis其實就已經安裝好了,有小夥伴可能會有疑問啦,難道就這麼簡單嗎?是的!沒錯!就是這麼簡單,直接解壓就能用!

但是需要注意!!!

這個時候這個命令行窗口不能關閉,一旦關閉,你的Redis服務就停止了,之後也就無法使用客戶端進行Redis操作了,所以之後在進行Redis相關操作的時候,上面這個窗口也是一定要開著的!!!

三、Redis常用命令解析

(1)啟動Redis客戶端

在Redis服務器頁面打開的前提下,我們再打開一個新的cmd命令行,切換到Redis的目錄下,運行如下命令,即可啟動我們的Redis客戶端,我們之後所做的所有操作,都是在這個客戶端界面上進行的,

redis-cli.exe -h 127.0.0.1 -p 6379

解釋一下上面這樣命令的含義,

  • redis-cli.exe -p 6379錶示我們的Redis客戶端界面
  • -h 錶示IP地址,127.0.0.1為本地地址的意思
  • -p錶示端口號,6379為Redis的默認地址

至於Redis的默認端口號為什麼是6379,我建議小夥伴們可以作為一個課後作業去查閱一下,這背後可是有一個很有趣的故事的,相信看了之後你肯定就永遠的記住Redis的默認端口號啦!

(2)Redis常用命令解析

接下來我們來介紹幾個Redis中比較常用的命令,建議小夥伴們在命令行中一個一個的去實驗一下,

這裏分享一個小技巧:在Redis的命令行中,輸入命令的前幾個字母,按Tab鍵,可以自動補全整個命令,

Redis數據庫切換

Redis默認其實是有16個數據庫的,而我們上面啟動之後,它默認的是第0個數據庫,那麼我們可以通過select命令來切換數據庫,比如我們切換到6號數據庫,

127.0.0.1:6379> SELECT 6
OK
127.0.0.1:6379[6]>

 如上這樣,我們就可以在接下來的命令前看到有一個“[6]”的標識,這樣就錶示當前是第6號數據庫,注意默認的第0個數據庫前面是不顯示的,

輸入與獲取數據

我們最開始的時候就知道了,Redis數據庫中的數據是以key-value的形式存儲的,那麼我們在輸入數據的時候,當然就需要以key value的形式輸入了,

Redis中輸入和獲取值的最基本的命令是SET和GET命令,

輸入數據的命令格式為:

SET key value

  • key為你輸入的這個值對應的索引
  • value為你輸入的值

如我們設置一個索引為“mykey”,值為“huixiaoyuan”的的鍵值對。

127.0.0.1:6379> SET mykey huixiaoyuan
OK
127.0.0.1:6379>

顯示OK就說明鍵入成功!

獲取你輸入的值的命令為:

GET key

  • key為你之前輸入的值所對應的索引,也就是鍵

如我們想要獲取剛才輸入的mykey-huixiaoyuan,那麼直接運行如下命令,,就可以獲取到我們輸入的鍵值對的值,如果Redis數據庫中不存在該鍵值對,那麼就會返回null。

127.0.0.1:6379> GET mykey
huixiaoyuan
127.0.0.1:6379> GET mykey2
(nil)
127.0.0.1:6379>

獲取全部數據

上面我們講了一個通過get的方式來獲取一個索引對應的值,那麼如果我們的數據庫中有很多條數據,想要獲取全部數據應該怎麼做呢?

其實也簡單,我們只需要使用keys * 命令即可,但是需要注意的就是,該方法只是獲取到所有的數據的索引,並不會顯示對應的值。

獲取數據庫中全部數據

KEYS *

127.0.0.1:6379> KEYS *
1) "mykey"
2) "mykey3"
3) "mykey2"
127.0.0.1:6379>

清除部分或全部數據

我們上面提到了Redis中是有16個數據庫的,那麼如果想要删除其中一個數據庫中的數據,或者删除所有數據庫的數據,應該怎麼做呢?

首先是删除一個數據庫中的全部數據,

我們可以使用SELECT命令切換到這個數據庫,然後在該數據庫下使用FLUSHDB命令即可

清除一個數據庫中的全部數據

FLUSHDB

這個時候你再去get我們之前輸入的值就會返回null了!

127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> get mykey
(nil)

清除所有數據庫的全部數據

清除所有數據庫的全部數據所使用的命令是FLUSHALL,從命令的英語翻譯上我們就可以看到它是清除全部的意思,使用這個命令後,它會把Redis的16個數據庫中的所有數據全部清空,所以在公司或者開發的時候一定要慎用哈!

清除所有數據庫的全部數據

FLUSHALL

127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> get mykey
(nil)

隨機獲取一個key

如果想要從當前數據庫已經存在的key裏面,隨機的返回一個key,那麼我們可以使用RANDOMKEY命令,它將會返回一個隨機的key名稱

隨機獲取一個key

RANDOMKEY

127.0.0.1:6379> RANDOMKEY
"mykey"
127.0.0.1:6379> RANDOMKEY
"mykey"
127.0.0.1:6379> RANDOMKEY
"mykey2"

當然,如果你的數據庫中的key比較少的情况下,建議多執行幾次命令,才會出現隨機的效果。

獲取指定key對應值的類型

Redis中有五種基本數據類型,分別是Sting型、List型、Hash型、Set型、Zset型,關於這五種基本數據類型的使用我會在下一篇文章和大家講解,但是現在如果你想要獲取一個指定key的數據類型,那麼可以怎麼獲取呢?

方法也是很簡單的,類型的英語是“type”,那麼我們可以直接使用TYPE key命令來獲取,

獲取指定key對應的值的數據類型

TYPE key

比如我們獲取之前輸入的mykey對應的值的數據類型。

127.0.0.1:6379> TYPE mykey
string
127.0.0.1:6379>

删除指定key及其value

上面我們都是講了如何設置和獲取key及其value,那麼如果這個鍵值對我們不想要了,應該如何删除呢?也是很簡單,我們可以直接使用DEL key命令,

删除指定key及其value

DEL key

比如我們現在要删除key為mykey2的索引,及其所對應的value,那麼就可以直接使用下面的命令,如果删除成功,那麼就會返回删除的鍵值對的個數,再次獲取這個key就會返回null,如果這個key根本就不存在的話,你直接去删除會返回0.

127.0.0.1:6379> DEL mykey2
(integer) 1
127.0.0.1:6379> GET mykey2
(nil)
127.0.0.1:6379> DEL mykey2
(integer) 0
127.0.0.1:6379>

今日總結

以上就是今天學習的主要內容,最主要的是需要掌握關系型數據庫和非關系型數據庫的主要區別了解Redis的主要使用場景和基本的操作命令即可啦!這也是在面試的時候很多面試官都比較愛問的問題!!!

最後別忘記今天的打卡喲!【點擊查看活動打卡方式

在學習中存在任何問題的,大家都可以添加我的微信huixiaoyuan1030,(因為微信群二維碼有效期只有七天),加入我們的“打卡答疑交流群”一起抱團、一起進步!

點擊下方卡片可以找到我的聯系方式,

版權聲明
本文為[灰小猿]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271807289090.html

隨機推薦