偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Redis 小白入門(mén)以及基礎(chǔ)搭建

數(shù)據(jù)庫(kù) MySQL Redis
Redis 的全稱(chēng)是 Remote Dictionary Server,它是一款 開(kāi)源的 高性能的 NoSQL 數(shù)據(jù)庫(kù),它可以用作 數(shù)據(jù)庫(kù)、緩存 和 消息隊(duì)列。

 Redis 簡(jiǎn)介

什么是 Redis

Redis 的全稱(chēng)是 Remote Dictionary Server,它是一款 開(kāi)源的 高性能的 NoSQL 數(shù)據(jù)庫(kù),它可以用作 數(shù)據(jù)庫(kù)、緩存 和 消息隊(duì)列。

什么是 NoSQL

NoSQL 最常見(jiàn)的解釋是 naon-relational,非關(guān)系型數(shù)據(jù)庫(kù),還有一種說(shuō)法是 Not Only SQL,不僅僅是 SQL,NoSQL 僅僅是一個(gè)概念,泛指非關(guān)系型的數(shù)據(jù)庫(kù),區(qū)別于關(guān)系數(shù)據(jù)庫(kù),它們不保證關(guān)系數(shù)據(jù)的 ACID 特性。ACID 即

  • A (Atomicity) 原子性
  • C (Consistency) 一致性
  • I (Isolation) 獨(dú)立性
  • D (Durability) 持久性

Redis 通過(guò)提供多種鍵值對(duì)的數(shù)據(jù)類(lèi)型來(lái)適應(yīng)不同場(chǎng)景下的存儲(chǔ)需求。

NoSQL 的代表

作為 NoSQL 的代表主要有

  • MongoDB
  • Redis
  • Memcached

 

 

 

 

NoSQL 的優(yōu)點(diǎn)

Redis 相較于關(guān)系型數(shù)據(jù)庫(kù)模型,它還是具有很多優(yōu)點(diǎn)的

  • 易擴(kuò)展

NoSQL 數(shù)據(jù)庫(kù)種類(lèi)繁多,但是一個(gè)共同的特點(diǎn)就是去掉關(guān)系數(shù)據(jù)庫(kù)的關(guān)系型特性,數(shù)據(jù)之間無(wú)關(guān)系,這樣就非常容易擴(kuò)展。

  • 大數(shù)據(jù)量,高性能

NoSQL 數(shù)據(jù)庫(kù)都具有非常高的讀寫(xiě)性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)很優(yōu)秀。

  • 靈活的數(shù)據(jù)模型

NoSQL 無(wú)需事先建立字段,這省去了關(guān)系型數(shù)據(jù)庫(kù)一旦建立字段,可擴(kuò)展性非常差的不利局面。NoSQL 隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式。

  • 高可用

NoSQL 在不太影響性能的情況,就可以方便地實(shí)現(xiàn)高可用的架構(gòu)。比如 Cassandra、HBase 模型,通過(guò)復(fù)制模型也能實(shí)現(xiàn)高可用。

Redis 數(shù)據(jù)類(lèi)型

Redis 支持的數(shù)據(jù)類(lèi)型主要有五種,它們分別是

  • 字符串 - strings

string 字符串 是 Redis 中最簡(jiǎn)單的數(shù)據(jù)類(lèi)型,它是與 Memcached 一樣的類(lèi)型,一個(gè) key 對(duì)應(yīng)一個(gè) value,這種 key/value 對(duì)應(yīng)的方式稱(chēng)為鍵值對(duì)。字符串對(duì)很多例子都有用,例如緩存 HTML 片段和網(wǎng)頁(yè)。

  • 集合 - set

set 是集合,和我們數(shù)學(xué)中的集合概念相似,對(duì)集合的操作有添加刪除元素,有對(duì)多個(gè)集合求交并差等操作。操作中 key 理解為集合的名字。

  • 散列 - hash

hash 是一個(gè)鍵值 (key=>value) 對(duì)集合;是一個(gè) string 類(lèi)型的 field 和 value 的映射表,hash 特別適合用于存儲(chǔ)對(duì)象。

  • 列表 - list

Redis 列表是簡(jiǎn)單的字符串列表,按照插入順序排序。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)。list類(lèi)型經(jīng)常會(huì)被用于消息隊(duì)列的服務(wù),以完成多程序之間的消息交換。

  • 有序集合 - zset

Redis zset 和 set 一樣也是 string 類(lèi)型元素的集合,且不允許重復(fù)的成員。當(dāng)你需要一個(gè)有序的并且不重復(fù)的集合列表時(shí),那么可以選擇 sorted set 數(shù)據(jù)結(jié)構(gòu)。

Redis 安裝

Redis 支持在 Linux、OS X 、BSD 等 POSIX 系統(tǒng)中安裝,也支持在 Windows 中安裝,在 Windows 、Linux 下的安裝請(qǐng)參考 https://www.runoob.com/redis/redis-install.html

我自己的電腦是 mac 系統(tǒng),mac 系統(tǒng)的安裝過(guò)程是 https://www.jianshu.com/p/bb7c19c5fc47

如果你用的是 Homebrew,它的安裝過(guò)程是 https://www.jianshu.com/p/e1e5717049e8

Redis 啟動(dòng)

安裝完成 Redis 后,我們需要啟動(dòng) Redis,不過(guò)我們?cè)趩?dòng) Redis 之前,需要先了解一下 Redis 的可執(zhí)行文件,如果你是下載的 tar.gz 安裝包,可以使用 make install 進(jìn)行編譯,編譯完成后會(huì)在 /usr/local/bin 目錄生成下面這幾個(gè)可執(zhí)行文件

 

 

 

 

下面我們來(lái)一起認(rèn)識(shí)一下這些可執(zhí)行文件的作用

  • redis-benchmark 是 Redis 性能測(cè)試工具,可以使用 redis-benchmark 進(jìn)行基準(zhǔn)測(cè)試,比如redis-benchmark -q -n 100000 ,這個(gè)工具使用起來(lái)非常方便,同時(shí)你可以使用自己的基準(zhǔn)測(cè)試工具
  • redis-check-rdb RDB 文件檢查工具,rdb 是 Redis 的一種持久化方式
  • redis-check-aof AOF 文件檢查工具,aof 也是 Redis 的一種持久化方式,關(guān)于這兩種持久化方式我們后面會(huì)說(shuō)
  • redis-sentinel redis-sentinel 就是一個(gè)獨(dú)立運(yùn)行的進(jìn)程,用于監(jiān)控多個(gè) master-slave 集群, 自動(dòng)發(fā)現(xiàn) master 宕機(jī),進(jìn)行自動(dòng)切換 slave > master。
  • redis-cli,redis-cli 和 后面的 redis-server 都是常用的而且比較重要的命令,是你登錄 redis 的指令
  • redis-server,redis-server 是 redis 的后臺(tái)服務(wù)器

Redis 啟動(dòng)分為兩種,一種是直接運(yùn)行 redis-server,一種是通過(guò) redis 腳本啟動(dòng),前者一般用于開(kāi)發(fā)環(huán)境,腳本啟動(dòng)一般用于生產(chǎn)環(huán)境,這里我們直接使用直接啟動(dòng)的方式。

直接運(yùn)行 redis-server 即可啟動(dòng) redis

 

 

 

 

也可以通過(guò)指定 Redis 的端口來(lái)運(yùn)行 Redis

redis-server --port 6380

這里我們就不貼出圖了。

Redis 停止

考慮到 Redis 有可能正在將內(nèi)存中的數(shù)據(jù)同步到硬盤(pán)中,強(qiáng)制執(zhí)行 Redis 的停止命令可能導(dǎo)致數(shù)據(jù)丟失。正確停止 Redis 的方式應(yīng)該是向 Redis 發(fā)送 SHUTDOWN 命令,如下

redis-cli SHUTDOWN

這里你可能還不清楚 redis-cli 是什么指令,我們下面會(huì)說(shuō)。

當(dāng) Redis 收到 SHUTDOWN 指令后,會(huì)先斷開(kāi)所有客戶端連接,然后根據(jù)配置執(zhí)行持久化,最后完成退出。

也可以使用 kill Redis 端口 來(lái)正常結(jié)束 Redis ,效果與 SHUTDOWN 命令一樣。

Redis 命令行客戶端

下面我們來(lái)說(shuō)一下 redis-cli 指令,redis-cli 和 redis-server 都是 Redis 中非常重要的工具,你一定要知道,redis-cli 的全稱(chēng)是 Redis Command Line Interface,是 Redis 自帶的命令行工具,它主要有下面這幾種用法

發(fā)送命令

通過(guò) redis-cli 向 Redis 發(fā)送命令的方式有兩種,一種是將命令作為 redis-cli 的參數(shù)執(zhí)行,比如上面的 redis-cli SHUTDOWN 命令,redis-cli 在執(zhí)行時(shí)會(huì)按照默認(rèn)的主機(jī)和端口號(hào)來(lái)進(jìn)行連接,默認(rèn)的主機(jī)和端口號(hào)分別是 127.0.0.1 和 6379 連接 Redis

 

 

 

 

也可以通過(guò) -h 和 -p 參數(shù)自定義地址和端口號(hào)

redis-cli -h 127.0.0.1 -p 6379

 

 

 

 

Redis 提供了 PING 命令來(lái)測(cè)試客戶端與 Redis 的連接是否正常,如果正常會(huì)回復(fù)到 PONG 響應(yīng),如下

redis-cli PING

 

 

 

 

命令返回值

在大多數(shù)情況下,執(zhí)行一條命令后我們會(huì)希望獲得命令的返回值,在 Redis 中,Redis 的命令返回值主要有 5 種類(lèi)型,對(duì)于每種類(lèi)型 redis-cli 的展現(xiàn)結(jié)果都不同,下面分別進(jìn)行說(shuō)明

狀態(tài)回復(fù)

狀態(tài)回復(fù)(status reply)是一種最簡(jiǎn)單的回復(fù),比如向 Redis 發(fā)送 SET 命令設(shè)置某個(gè)鍵的值時(shí),Redis 會(huì)回復(fù) OK 表示設(shè)置成功。我們上面說(shuō)到的 PING 和 PONG 也是一種狀態(tài)回復(fù)。狀態(tài)回復(fù)會(huì)直接顯示狀態(tài)信息。

錯(cuò)誤回復(fù)

錯(cuò)誤回復(fù)(error reply)指的是,當(dāng)出現(xiàn)命令不存在或者命令有錯(cuò)誤時(shí),會(huì)出現(xiàn)錯(cuò)誤回復(fù),并在后面跟上錯(cuò)誤信息。比如執(zhí)行一個(gè)不存在的指令

 

 

 

 

整數(shù)回復(fù)

Redis 雖然沒(méi)有整數(shù)類(lèi)型,但是卻提供了一些用于整數(shù)操作的指令,如遞增鍵值的 INCR命令會(huì)以整數(shù)形式返回遞增后的鍵值。除此之外,一些其他的命令也會(huì)返回整數(shù)。整數(shù)回復(fù)(integer reply) 以 integer 為開(kāi)頭然后在后面跟上整型數(shù)據(jù)

 

 

 

 

字符串回復(fù)

字符串回復(fù)(bulk reply) 是最常見(jiàn)的一種回復(fù)類(lèi)型,當(dāng)請(qǐng)求一個(gè)字符串類(lèi)型的鍵的鍵值或一個(gè)其他類(lèi)型鍵中的某個(gè)元素時(shí)就會(huì)得到一個(gè)字符串回復(fù)。字符串回復(fù)以雙引號(hào)包裹

 

 

 

 

還有一種情況時(shí)這個(gè)請(qǐng)求的鍵值不存在時(shí)會(huì)返回 nli,表示返回的是一個(gè)空結(jié)果。

 

 

 

 

多行字符串回復(fù)

多行字符串回復(fù)(multi-bulk reply) 同樣很常見(jiàn),如當(dāng)請(qǐng)求一個(gè)非字符串類(lèi)型的鍵的元素列表時(shí)就會(huì)收到多行字符串回復(fù)

Redis 配置

redis 可以支持自定義配置,比如是否開(kāi)啟持久化、配置日志級(jí)別等。由于可配置的選項(xiàng)比較多,通過(guò)啟動(dòng)來(lái)配置這些選項(xiàng)并不合理,因此可以通過(guò)程序員手動(dòng)配置。啟用配置文件的方法是在啟動(dòng)時(shí)將配置文件的路徑作為啟動(dòng)參數(shù)傳遞給 redis-server,如下

redis-server /路徑/redis.conf

通過(guò)參數(shù)傳遞同名的配置選項(xiàng)會(huì)覆配置文件中相應(yīng)的參數(shù),如下

redis-server /路徑/redis.conf --loglevel warning

Redis 提供了一個(gè)配置文件的模版 redis.conf,Redis 也支持動(dòng)態(tài)修改配置,可以使用 CONFIG SET 命令在不重新 Redis 的情況下動(dòng)態(tài)修改 Redis

CONFIG SET loglevel warning

Redis 多數(shù)據(jù)庫(kù)切換

Redis 是一個(gè)字典結(jié)構(gòu)的存儲(chǔ)服務(wù)器,實(shí)際上一個(gè) Redis 實(shí)例提供了多個(gè)用來(lái)存儲(chǔ)數(shù)據(jù)的字典,客戶端可以指定將數(shù)據(jù)存放在哪個(gè)字典中。

每個(gè)數(shù)據(jù)庫(kù)對(duì)外都是以一個(gè)從 0 開(kāi)始的遞增數(shù)字命名,Redis 默認(rèn)支持 16 個(gè)數(shù)據(jù)庫(kù),可以通過(guò)配置 databases 來(lái)修改這一數(shù)字??蛻舳伺c Redis 建立連接后會(huì)默認(rèn)選擇 0 號(hào)數(shù)據(jù)庫(kù),不過(guò)可以使用 select 命令切換數(shù)據(jù)庫(kù)。

select 1

這條指令就會(huì)選擇 1 號(hào)數(shù)據(jù)庫(kù)

 

 

 

 

這些數(shù)據(jù)庫(kù)與我們平常理解的 MySQL 數(shù)據(jù)庫(kù)不同。首先 Redis 不支持自定義數(shù)據(jù)庫(kù)的名字,每個(gè)數(shù)據(jù)庫(kù)都以編號(hào)命名,開(kāi)發(fā)者必須自己記錄哪些數(shù)據(jù)庫(kù)存儲(chǔ)了哪些數(shù)據(jù)。另外,Redis 也不支持為每個(gè)不同的數(shù)據(jù)庫(kù)設(shè)置不同的訪問(wèn)密碼。最重要的是多個(gè)數(shù)據(jù)庫(kù)之間并沒(méi)有完全隔離,比如 FLUSHALL 命令會(huì)清楚所有數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

責(zé)任編輯:武曉燕 來(lái)源: Java極客技術(shù)
相關(guān)推薦

2021-04-22 22:26:13

Java語(yǔ)言IT

2022-11-06 19:01:24

CURD數(shù)據(jù)庫(kù)開(kāi)發(fā)

2017-08-25 10:20:34

深度學(xué)習(xí)CNNKeras

2021-05-28 11:47:43

Linux運(yùn)維Linux系統(tǒng)

2024-11-22 10:45:20

2022-07-13 07:31:43

數(shù)據(jù)分片SQL

2011-02-24 11:10:33

Konqueror

2024-09-09 18:36:57

2020-08-06 08:05:13

云計(jì)算

2025-01-27 07:00:00

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng)MySQL

2023-12-25 09:35:51

自動(dòng)駕駛技術(shù)

2025-04-24 00:00:02

2015-10-29 15:36:19

Redis入門(mén)

2022-02-22 19:04:01

Perl編程語(yǔ)言

2016-12-13 10:07:50

JAVA框架搭建

2015-11-20 11:31:26

mysql數(shù)據(jù)庫(kù)索引

2018-08-15 09:48:27

數(shù)據(jù)庫(kù)Redis應(yīng)用場(chǎng)景

2010-02-04 11:50:18

ibmdwCognosBI

2022-05-05 08:16:47

Spark架構(gòu)Hadoop

2021-05-14 23:31:50

大數(shù)據(jù)計(jì)算機(jī)開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)