Redis解析入門篇(一)

  • 一,前言

   相信大家即使沒用過肯定都聽說過Redis這個數據庫,但是還有很多人,一提起Redis,只知道是個用來做分佈式,做緩存的數據庫,對於其真正的原理和作用都沒有一個很清晰的概念!

   這篇文章的意義就是讓大家可以通俗易懂的對該Redis有個清晰的認識,不僅僅是知道其可以用來幹什麼,更重要的是可以知道爲什麼可以用來做這,做那。一起來熟悉吧!

  • 二,Redis起源發展

Redis是由意大利人antirez發明,此人早期是系統管理員,後來相繼做了嵌入式開發工作,web,到了2007年和朋友一起創建了LLOOGG.com,也正是這個網站,纔有了後來的Redis。當時antirez發現自己的網站存在很大的負載問題,於是兩年之後,2009年,開發了Redis數據庫。

  • 三,Redis簡介

一個完全開源免費的nosql數據庫,是一個高性能的key-value數據庫。
爲什麼說其是一個高性能的key-value數據庫呢? 可以看下面的數據
測試 50個併發執行100000個請求
設置和獲取的值是一個256字節字符串
結果讀的速度是110000次/s,寫的速度是81000次/s
而我們平常的關係型MySQL數據庫
mysql 5.5 mysql 5.6 mysql 5.7 :默認的最大併發連接數都是151,上限爲100000。

  • 四,Redis安裝&入門
    上面瞭解了Redis的基本來源之後,接着我們就開正式開始Redis的學習吧!

在學的過程中,我會慢慢給大家講解,Redis的功能對應的應用場景,從而可以更好的掌握Redis!

Redis的安裝:
這裏講的是在window環境下的安裝,相對Linux環境下的安裝簡單很多,比如在Linux環境下安裝需要額外配置C++的語言環境等等,後續我也會出一個Linux下的安裝教程

  • 1 windows下載鏈接

https://github.com/MSOpenTech/redis/releases
因爲使用的是國外的服務器,所以雖然整個只有5m多,但是要下載半天
在這裏插入圖片描述
下載之後,解壓到對應路徑,我解壓到了G:\Redis,接下來我會以這個路徑爲準。

  • 2 Redis基本操作
    cd到解壓目錄,打開Redis服務端
    (這裏redis.windows.conf的作用是,按照該配置文件的配置啓動服務器)
    在這裏插入圖片描述
    另外開一個cmd,同樣cd到對應的目錄,打開客戶端服務器
    在這裏插入圖片描述
    命令解析:
    Redis-cli.exe (客戶端) -h (服務端ip地址) -p(服務端口)

String
二進制安全,可以包含任何數據,同時在數據交互的過程中,可以很好的對數據進行加密
基本操作,set和get 設置&取出
在這裏插入圖片描述

Hash
鍵值對的集合,就好比是一個鍵(hash)中包含了多個鍵值對
一個hash可以存儲2^32-1(40多億個鍵值對)
正是這一特性,其存儲數據是非常好的,通常用來存儲數據
(同樣是不區分大小)
hmset key key1 value1 key2 value2 key3 value3在這裏插入圖片描述
hgetall key 顯示出該hash下的所有鍵值對在這裏插入圖片描述

List
簡單的字符串列表,我們可以選擇插入順序。
有序可重複,因爲其有序,而且支持左右插入,所以通常會被用來作爲消息隊列
使用表存鍵值對
從左邊插入數據
(後插入的數據在前面)
lpush key value
在這裏插入圖片描述
需要注意的是:
List中的key不能和其他數據類型的key相同,否則會報錯
(在同一個數據庫中,沒有表的概念)
(出現相同的key,會覆蓋之前的值,但是list類型不能覆蓋string,string可以覆蓋list類型)
在這裏插入圖片描述
從右邊插入數據
(後插入的數據,在後面)
取出:

在這裏插入圖片描述

lrange 表名 因爲是取數據,所以是從左往右取,最符合業務邏輯,無從右往左取數據,
語法: lrange 鍵 起始 終點
lrange key 0 3
從零開始取到3,共4個數
lrange key 0 -1
取出整個key的集合在這裏插入圖片描述
Set
string類型的無序不重複,通過哈希表實現,又因爲Hashtable採用的是數組+鏈表的形式,所以其添加,刪除,查找的複雜度都是O(1)
可以利用該唯一性統計訪問量
設置&取出
sadd key value1
sadd key value2
將value1和value2添加到該集合中去
同時下圖中,222插入了兩次,但是隻執行了一次,這是因爲set是有序的。
在這裏插入圖片描述
zset
和set關聯就如其名字一樣,代表有序的set,插入數據時和set一樣,天然排序
zadd key score(權重) value
取值的方式卻和list很像,正所謂是集合了list和set的優點於一身
取數據:
zrange key 範圍 0 -1 (取出所有) withscores(顯示對應的權重)
zadd不會重複且有序原理:
1依賴權重給元素排序
若出現重複的元素,那麼會替換其權重score,重新進行排序,不會重複出現
2權重相同的情況下,後進在先
在權重相同的情況下,後面進行來的元素會緊接着在該元素的後面一位,後面的元素全部往後移動一位

List: lrange key 0 4 (下標起始點和下標終點)
zset:通過權重進行排序,
zrangebyscore key 0 100 將權重在0-100之內的數據取出
正是由於該有序不重複的特性,常用的使用場景:各種排行榜;帶權重的消息隊列
以上就是Redis的基礎入門篇,後續會持續更新,由入門到熟練應用!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章