好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > redis簡介_動力節點Java學院整理

redis簡介_動力節點Java學院整理

熱門標簽:太原營銷外呼系統 竹間科技AI電銷機器人 小紅書怎么地圖標注店 地圖標注費用 西藏教育智能外呼系統價格 玄武湖地圖標注 百度商家地圖標注怎么做 最簡單的百度地圖標注 地圖標注如何即時生效

Redis是一個開源的,先進的 key-value 存儲可用于構建高性能,可擴展的 Web 應用程序的解決方案。Redis官方網網站是:http://www.redis.io/,如下:

Redis 有三個主要使其有別于其它很多競爭對手的特點:

  • Redis是完全在內存中保存數據的數據庫,使用磁盤只是為了持久性目的; 
  • Redis相比許多鍵值數據存儲系統有相對豐富的數據類型; 
  • Redis可以將數據復制到任意數量的從服務器中; 

Redis優點

  • 異常快速 : Redis是非常快的,每秒可以執行大約110000設置操作,81000個/每秒的讀取操作。
  • 支持豐富的數據類型 : Redis支持最大多數開發人員已經知道如列表,集合,可排序集合,哈希等數據類型。這使得在應用中很容易解決的各種問題,因為我們知道哪些問題處理使用哪種數據類型更好解決。
  • 操作都是原子的 : 所有 Redis 的操作都是原子,從而確保當兩個客戶同時訪問 Redis 服務器得到的是更新后的值(最新值)。
  • MultiUtility工具:Redis是一個多功能實用工具,可以在很多如:緩存,消息傳遞隊列中使用(Redis原生支持發布/訂閱),在應用程序中,如:Web應用程序會話,網站頁面點擊數等任何短暫的數據;

Redis環境

要在 Ubuntu 上安裝 Redis,打開終端,然后輸入以下命令:

$sudo apt-get update
$sudo apt-get install redis-server

這將在您的計算機上安裝Redis

啟動 Redis

$redis-server

查看 redis 是否還在運行

$redis-cli

這將打開一個 Redis 提示符,如下圖所示:

redis 127.0.0.1:6379>

在上面的提示信息中:127.0.0.1 是本機的IP地址,6379是 Redis 服務器運行的端口。現在輸入 PING 命令,如下圖所示:

redis 127.0.0.1:6379> ping
PONG

這說明現在你已經成功地在計算機上安裝了 Redis。

在Ubuntu上安裝Redis桌面管理器

要在Ubuntu 上安裝 Redis桌面管理,可以從 http://redisdesktop.com/download 下載包并安裝它。

Redis 桌面管理器會給你用戶界面來管理 Redis 鍵和數據。

Redis數據類型

Redis 支持5種數據類型,說明如下:

字符串

Redis 字符串是一個字節序列。在 Redis 中字符串是二進制安全的,這意味著它們沒有任何特殊終端字符來確定長度,所以可以存儲任何長度為 512 兆的字符串。

示例

redis 127.0.0.1:6379> SET name "yiibai"
OK
redis 127.0.0.1:6379> GET name
"yiibai"

在上面的例子中,SET 和 GET 是 Redis 命令,name 和 "yiibai" 是存儲在 Redis 的鍵和字符串值。

哈希

Redis哈希是鍵值對的集合。 Redis哈希是字符串字段和字符串值之間的映射,所以它們用來表示對象。

示例

redis 127.0.0.1:6379> HMSET user:1 username yiibai password yiibai points 200
OK
redis 127.0.0.1:6379> HGETALL user:1

1) "username"
2) "yiibai"
3) "password"
4) "yiibai"
5) "points"
6) "200"

在上面的例子中,哈希數據類型用于存儲包含用戶基本信息的用戶對象。這里 HSET,HEXTALL 是 Redis 命令同時 user:1 也是一個鍵。

列表

Redis 列表是簡單的字符串列表,通過插入順序排序。可以添加一個元素到 Redis 列表的頭部或尾部。

示例

redis 127.0.0.1:6379> lpush tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> lpush tutoriallist mongodb
(integer) 2
redis 127.0.0.1:6379> lpush tutoriallist rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange tutoriallist 0 10

1) "rabitmq"
2) "mongodb"
3) "redis"

列表的最大長度為  232 - 1 個元素(4294967295,每個列表的元素超過四十億)。

集合

Redis 集合是字符串的無序集合。在 Redis 可以添加,刪除和測試成員存在的時間復雜度為 O(1)。

示例

redis 127.0.0.1:6379> sadd tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist mongodb
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers tutoriallist

1) "rabitmq"
2) "mongodb"
3) "redis"

注:在上面的例子中 rabitmq 被添加兩次,但由于它是只集合具有唯一特性。集合中的成員最大數量為 232 - 1(4294967295,每個集合有超過四十億條記錄)。

集合排序

不同的是,一個有序集合的每個成員都可以排序,就是為了按有序集合排序獲取它們,按權重分值從最小到最大排序。雖然成員都是獨一無二的,按權重分數值可能會重復。

示例

redis 127.0.0.1:6379> zadd tutoriallist 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000

1) "redis"
2) "mongodb"
3) "rabitmq"

Redis鍵

Redis 中的 keys 命令用于管理 redis 中的鍵。Redis keys命令使用的語法如下所示:

語法

redis 127.0.0.1:6379> COMMAND KEY_NAME

示例

redis 127.0.0.1:6379> SET yiibai redis
OK
redis 127.0.0.1:6379> DEL yiibai
(integer) 1

在上面的例子中 DEL 是一個命令,而 yiibai 是一個鍵。如果鍵被成功刪除,則該命令的輸出將是(整數)1,否則這將是(整數)0;

Redis字符串

Redis 的字符串命令用于管理 redis 的字符串值。Redis 的字符串命令語法的使用如下所示:

語法

redis 127.0.0.1:6379> COMMAND KEY_NAME

示例

redis 127.0.0.1:6379> SET yiibai redis
OK
redis 127.0.0.1:6379> GET yiibai
"redis"

在上面示例中 SET 和 GET 是 Redis 的命令,這里 yiibai 就是一個鍵(key);

Redis哈希

Redis哈希是字符串字段和字符串值之間的映射,所以它是用來表示對象的一個完美的數據類型,Redis 的哈希值最多可存儲超過4十億字段-值對。

示例

redis 127.0.0.1:6379> HMSET yiibai name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL yiibai

1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"

在上面的例子,我們在設置一個名為 yiibai Redis的哈希的教程詳細信息(name, description, likes, visitors)。

Redis列表

Redis列表是簡單的字符串列表,通過插入順序排序。您可以在Redis 列表的頭或列表尾添加元素。列表的最大長度為  232 - 1 個元素(4294967295,每個列表可有超過四十億個元素)。

示例

redis 127.0.0.1:6379> LPUSH tutorials redis
(integer) 1
redis 127.0.0.1:6379> LPUSH tutorials mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH tutorials mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE tutorials 0 10

1) "mysql"
2) "mongodb"
3) "redis"

在上面的例子中的三個值由命令LPUSH 插入到 redis 名稱為 tutorials 的列表。

Redis集合

Redis集合是唯一字符串的無序集合。唯一集合是不允許數據有重復的鍵的。在 Redis 集合中添加,刪除和測試成會是否存的時間復雜度為O(1)(恒定的時間,無論集合內包含元素的數量)。集合的最大長度為   232 - 1 個元素(4294967295,每個集合中超過四十億個元素)。

示例

redis 127.0.0.1:6379> SADD yiibai redis
(integer) 1
redis 127.0.0.1:6379> SADD yiibai mongodb
(integer) 1
redis 127.0.0.1:6379> SADD yiibai mysql
(integer) 1
redis 127.0.0.1:6379> SADD yiibai mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS yiibai

1) "mysql"
2) "mongodb"
3) "redis"

在上面的例子中的三個值被 Redis 的命令SADD插入到一個名為 yiibai 集合。

Redis有序集合

Redis的有序集合類似于 Redis 的集合,但是存儲的值在集合中具有唯一性。另外有序集合的每個成員都使用分值(score)的東西,這個分值就是用于將有序集合排序,從分值最小到最大來排序。

在 Redis 有序集合添加,刪除和測試成員的存在的時間復雜度為 O(1)(恒定時間,無論集合內包含元素的數量)。列表的最大長度為 232 - 1 個元素(4294967295,每個集合的元素超過四十億)。 

示例

redis 127.0.0.1:6379> ZADD yiibai 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD yiibai 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD yiibai 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD yiibai 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD yiibai 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE yiibai 0 10 WITHSCORES

1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

在上面的例子中的三個值及其分值被 ZADD 命令插入一個名稱為 yiibai 的 redis 有序集合中

Redis HyperLogLog

Redis HyperLogLog 是用來做基數統計的算法,HyperLogLog 的優點是,在輸入元素的數量或者體積非常非常大時,計算基數所需的空間總是固定 的、并且是很小的。

在 Redis 里面,每個 HyperLogLog 鍵只需要花費 12 KB 內存,就可以計算接近 2^64 個不同元素的基 數。這和計算基數時,元素越多耗費內存就越多的集合形成鮮明對比。但是,因為 HyperLogLog 只會根據輸入元素來計算基數,而不會儲存輸入元素本身,所以 HyperLogLog 不能像集合那樣,返回輸入的各個元素。

示例

下面的例子說明了 HyperLogLog Redis 的工作原理:

redis 127.0.0.1:6379> PFADD tutorials "redis"

1) (integer) 1

redis 127.0.0.1:6379> PFADD tutorials "mongodb"

1) (integer) 1

redis 127.0.0.1:6379> PFADD tutorials "mysql"

1) (integer) 1

redis 127.0.0.1:6379> PFCOUNT tutorials

(integer) 3

Redis發布訂閱

Redis訂閱和發布實現了通訊系統,發件人(在 Redis 中的術語稱為發布者)發送郵件,而接收器(訂戶)接收它們。信息傳輸的鏈路稱為通道。Redis 一個客戶端可以訂閱任意數量的通道。

示例

以下舉例說明發布訂閱用戶如何工作。在下面的例子給出一個客戶端訂閱的通道命名 redisChat 。

redis 127.0.0.1:6379> SUBSCRIBE redisChat

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1

現在,兩個客戶端都在同一個通道名:redisChat 上發布消息,上述訂閱客戶端接收消息。

redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"

(integer) 1

redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by tutorials point"

(integer) 1


1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by tutorials point"

Redis事務

Redis事務允許一組命令在單一步驟中執行。事務有兩個屬性,說明如下:

  • 在一個事務中的所有命令作為單個獨立的操作順序執行。在Redis事務中的執行過程中而另一客戶機發出的請求,這是不可以的;
  • Redis事務是原子的。原子意味著要么所有的命令都執行,要么都不執行;

示例

Redis 事務由指令 MULTI 發起的,之后傳遞需要在事務中和整個事務中,最后由 EXEC 命令執行所有命令的列表。

redis 127.0.0.1:6379> MULTI
OK
List of commands here
redis 127.0.0.1:6379> EXEC

示例

下面的例子說明了 Redis 的事務是如何開始和執行。

redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET tutorial redis
QUEUED
redis 127.0.0.1:6379> GET tutorial
QUEUED
redis 127.0.0.1:6379> INCR visitors
QUEUED
redis 127.0.0.1:6379> EXEC

1) OK
2) "redis"
3) (integer) 1

Redis腳本

Redis 腳本是使用Lua解釋腳本用來評估(計算)。從 Redis 2.6.0 版本開始內置這個解釋器。命令 EVAL 用于執行 腳本命令。

語法

EVAL命令的基本語法如下:

redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]

示例

下面的例子說明了 Redis 腳本是如何工作的:

redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

1) "key1"
2) "key2"
3) "first"
4) "second"

Redis連接

Redis 的連接命令基本上都用于管理 Redis服務器與客戶端連接。

示例

下面的例子說明了一個客戶端在Redis服務器上,如何檢查服務器是否正在運行并驗證自己。

redis 127.0.0.1:6379> AUTH "password"
OK
redis 127.0.0.1:6379> PING
PONG

Redis備份

Redis的SAVE命令用于創建當前 Redis 數據庫的備份。

語法

Redis 的 SAVE 命令的基本語法如下所示:

127.0.0.1:6379> SAVE

示例

以下示例顯示了如何在Redis的當前數據庫中創建備份。

127.0.0.1:6379> SAVE

OK

在執行此命令之后,將在 redis 目錄中創建一個 dump.rdb 文件。

恢復 Redis 數據

要恢復 redis 數據只需要要將 Redis 的備份文件(dump.rdb)放到 Redis 的目錄中,并啟動服務器。要了解知道 Redis 目錄在什么位置,可使用 CONFIG 命令,如下所示:

127.0.0.1:6379> CONFIG get dir

1) "dir"
2) "/user/yiibai/redis-2.8.13/src"

在上面的命令命令輸出為 /user/yiibai/redis-2.8.13/src 就是使用的 Redis 目錄,也就是 Redis 的服務器安裝的目錄。

Bgsave

創建 Redis 的備份也可以使用備用命令 BGSAVE 。此命令將啟動備份過程,并在后臺運行此。

示例

127.0.0.1:6379> BGSAVE

Background saving started

Redis安全

Redis 數據庫可以配置安全保護的,所以任何客戶端在連接執行命令時需要進行身份驗證。為了確保 Redis 的安全,需要在配置文件設置密碼。

示例

下面給出的例子顯示的步驟是用來確保 Redis 實例的安全。

127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""

默認情況下此屬性是空的,這意味著此實例沒有設置密碼。可以通過執行以下命令來修改設置此屬性

127.0.0.1:6379> CONFIG set requirepass "yiibaipass"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "yiibaipass"

如果客戶端運行命令無需驗證設置密碼,那么(錯誤)NOAUTH 需要驗證。錯誤將返回。因此,客戶端需要使用 AUTH 命令來驗證自己的身份信息。

語法

AUTH命令的基本語法如下所示:

127.0.0.1:6379> AUTH password

Redis性能測試

Redis的基準性能測試是通過同時運行 N 個命令以檢查 Redis 性能的工具。

語法

Redis的基準測試的基本語法如下所示:

redis-benchmark [option] [option value]

示例

下面給出的示例是通過調用 100000 個(次)命令來檢查 Redis。

redis-benchmark -n 100000

PING_INLINE: 141043.72 requests per second
PING_BULK: 142857.14 requests per second
SET: 141442.72 requests per second
GET: 145348.83 requests per second
INCR: 137362.64 requests per second
LPUSH: 145348.83 requests per second
LPOP: 146198.83 requests per second
SADD: 146198.83 requests per second
SPOP: 149253.73 requests per second
LPUSH (needed to benchmark LRANGE): 148588.42 requests per second
LRANGE_100 (first 100 elements): 58411.21 requests per second
LRANGE_300 (first 300 elements): 21195.42 requests per second
LRANGE_500 (first 450 elements): 14539.11 requests per second
LRANGE_600 (first 600 elements): 10504.20 requests per second
MSET (10 keys): 93283.58 requests per second

Redis客戶端連接

如果啟用了Redis 的接受配置監聽,客戶端可在TCP端口上與Unix套接字連接。以下操作執行后新的客戶端連接被服務器接受:

  • 客戶端套接字在非阻塞狀態,因為 Redis 使用復用和非阻塞I/O;
  • TCP_NODELAY選項設定以確保不會在連接時延遲;
  • 創建一個可讀的文件事件,以便 Redis 能夠盡快收集客戶端查詢作為新的數據可被套接字讀取;

客戶端最大連接數量

在Redis的配置文件(redis.conf)有一個屬性 maxclients ,它描述了可以連接到 Redis 的客戶的最大數量。命令的基本語法是:

config get maxclients

1) "maxclients"
2) "10000"

默認情況下此屬性設置為 10000(取決于OS的文件標識符限制最大數量),但可以修改這個屬性。

示例

在下面給出的例子我們已經設置客戶端最大連接數量為 100000,在之后啟動服務器:

redis-server --maxclients 100000

Redis管道

Redis是一個TCP服務器,支持請求/響應協議。在 redis 中一個請求完成以下步驟:

  • 客戶端發送一個查詢給服務器,并從套接字中讀取,通常服務器的響應是在一個封閉的方式;
  • 服務器處理命令并將響應返回給客戶端;

管道的含義

管道的基本含義是:客戶端可以發送多個請求給服務器,而不等待全部響應,最后在單個步驟中讀取所有響應。

示例

要檢查 Redis 管道只需要啟動 Redis 實例,并在終端輸入以下命令。

$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379

+PONG
+OK
redis
:1
:2
:3

在上面的例子所示,了解使用 PING 命令連接 Redis,之后我們在 Redis 設定一個名為 tutorial 字符串值,之后拿到這個鍵對應的值并增加訪問人數的三倍。在結果中,我們可以看到所有的命令都提交給 Redis 一次,Redis是給單步輸出所有命令。

通道的好處

這種技術的好處是顯著提高協議的性能。管道localhost 獲得至少達到百倍的網絡連接速度。

Redis分區

分區是將數據分割成多個 Redis 實例,使每個實例將只包含鍵子集的過程。

分區的好處

  • 它允許更大的數據庫,使用多臺計算機的內存總和。如果不分區,只是一臺計算機有限的內存可以支持的數據存儲;
  • 它允許按比例在多內核和多個計算機計算,以及網絡帶寬向多臺計算機和網絡適配器;

分區的劣勢

  • 涉及多個鍵的操作通常不支持。例如,如果它們被存儲在被映射到不同的 Redis 實例鍵,則不能在兩個集合之間執行交集;
  • 涉及多個鍵時,Redis事務無法使用;
  • 分區粒度是一個鍵,所以它不可能使用一個鍵和一個非常大的有序集合分享一個數據集;
  • 當使用分區,數據處理比較復雜,比如要處理多個RDB/AOF文件,使數據備份需要從多個實例和主機聚集持久性文件;
  • 添加和刪除的容量可能會很復雜。例如:Redis的Cluster支持數據在運行時添加和刪除節點是透明平衡的,但其他系統,如客戶端的分區和代理服務器不支持此功能

分區類型

Redis 提供有兩種類型的分區。假設我們有四個 redis 實例:R0,R1,R2,R3,分別表示用戶用戶如:user:1, user:2, ...等等

范圍分區

范圍分區被映射對象指定 Redis 實例在一個范圍內完成。

在我們的例子中,用戶從ID為 0 至 ID10000 將進入實例 R0,而用戶 ID 10001到ID 20000 將進入實例 R1 等等。

散列分區

在這種類型的分區是一個散列函數(例如,模數函數)用于將鍵轉換為數字數據,然后存儲在不同的 redis 實例

您可能感興趣的文章:
  • Redis有序集合類型的操作_動力節點Java學院整理
  • Redis入門教程_動力節點Java學院整理
  • 詳解Redis命令和鍵_動力節點Java學院整理
  • redis集群搭建_動力節點Java學院整理
  • redis快照模式_動力節點Java學院整理
  • redis列表類型_動力節點Java學院整理
  • redis發布訂閱_動力節點Java學院整理
  • redis集合類型_動力節點Java學院整理
  • redis安裝和配置_動力節點Java學院整理
  • 了解redis中RDB結構_動力節點Java學院整理

標簽:香港 贛州 澳門 揚州 廣東 景德鎮 唐山 林芝

巨人網絡通訊聲明:本文標題《redis簡介_動力節點Java學院整理》,本文關鍵詞  redis,簡介,動力,節點,Java,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《redis簡介_動力節點Java學院整理》相關的同類信息!
  • 本頁收集關于redis簡介_動力節點Java學院整理的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产精品日本无码久久一老A| 四川BBB搡BBB搡多人乱亂 | 黄色app在线看| 亚洲日本黄色片| 美女激情四射| 国精一级毛片A片AAA毛片香蕉| 贱奴主人惩罚臀缝红肿| 91在线手机精品免费观看| 亚洲天堂第一| 三级在线观看网站| 全文都是肉高h按摩技师| A级毛片免费观看网站| 亚洲电影自拍| 天堂WWW在线а√天堂| 日本无码少妇成人久久丫苍井空 | 武侠乱肉合集乱500小说| 真人无遮挡毛片免费视频| 成人免费网站ww在线观看| 強姦亂倫XXXvideo老熟妇| 亚洲成色999久久网站| 91久久久久人妻无码精品| 男人狂吮女人下部视频| 亚洲熟女的熟妇毛茸茸| 国产免费又色又爽又黄mv| 成人毛片免费观看视频在线| 与女乱之小兰全文免费阅读| 偷窥盗摄手机在线播放| 乳色吐息未删减老牛影视| 九九精品99| 伊人久久大香线蕉综合影院首页| 男男车文各种play| 日本夫妻性生活视频| 欧美一区二| 精品人妻一区二区三区含羞草| 免费a一级毛片在线播放| 做爰无遮挡全过程免费的软件| 妲己的大白乳大白屁股| 亚洲欧美AV无码国产金银花 | 老司机午夜一区二区三区| 香港三级日本三级韩国三级| 欧美人ZZZZOOOOXXXX|