2018年5月1日 星期二

Redis: 資料存取指令

使用 Redis 對資料進行操作的筆記。

安裝


使用 Docker 安裝 Redis 資料庫:

docker run --name my-redis -p 6379:6379 -d redis 
就會在 Docker Server 開啟 6379 指向這個 Container。

若要開啟永久儲存功能(Redis Persistence),要在指令後面加上 --appendonly yes 指令為:

docker run --name some-redis -p 6379:6379 -d redis redis-server --appendonly yes

連接器


連接器可以在 Command Line 介面安裝 redis-cli 或是在電腦安裝 Redis Desktop Manager

Redis 的資料庫


Redis 預設有 15 個資料庫,若要增加,需要更改 redis.conf 設定,不在此紀錄。


欲切換不同的資料庫做資料存取,可使用指令:

SELECT [index]
[index] 是資料庫的次序,如果要選擇第 5 個 db ,就使用:

SELECT 5

資料型別


Redis 資料型別有 5 種: Strings, Hashes, Lists, Sets, Sorted Sets。

String 只需要指定一個 Key-Value 即可,用法為:

SET [KEY] [VALUE]
舉例像是:

SET name "TAIWAN"
(此 String 無法重複同一個 Key)


Hashes 是可以在設置一個 Key 時,同時包含多個 Value,用法為:

HMSET [ORIGIN-KEY] [KEY1] [VALUE1] [KEY2] [VALUE2].....
舉例像是:

HMSET Partners Asia Taiwan Europe French

Lists 是可以在設置一個 Key 時,底下的 Value 包含按照讀寫先後順序的可重複集合,而且可以控制從頭部新增或尾部新增,用法為:

lpush [KEY] [VALUE]
(List 在同一個 KEY 中可以有很多個 list 的 value),舉例像是:

//同一個 key 的 list-value
lpush test "good"
lpush test "good"
lpush test "good1"
lpush test "good2"
lpush test "good3"

//與上面不同 key 的 list-value
lpush cool "g"
lpush cool "g"
lpush cool "g1"
lpush cool "g2"
lpush cool "g3"


Sets 是無序且會複寫同一個 Key 的集合,用法為:

SET [KEY] [VALUE]
遇到相同的 Key 則會複寫,舉例像是:

SET name "Eric"
SET name "Donald"

//name 的值會被第二個 Donald 複寫

SET cool "KFC"
//其他的集合值

Sorted Set 是一個在 Key 裡面的 Value 存在依照分數順序來排列的集合,相同的 Value 會複寫,Key 也是,且每個 Value 新增時都有一個相關分數來排序,用法為:

ZADD [KEY] [SCORE] [VALUE]
顯示時會從 0 開始為第一個序,因此舉例像是:

ZADD favorite 100 candy
ZADD favorite 0 chocolate
ZADD favorite 5 apple
此排列就會變成:

favorite:

  • chocolate, 0
  • apple, 5
  • candy, 100

錯誤問題: ERR Client sent AUTH, but no password is set
請設置 Redis 密碼:

CONFIG SET requirepass "password"
然後登入:

AUTH password


Reference:
https://yeasy.gitbooks.io/docker_practice/content/appendix/repo/redis.html
https://redis.io/topics/persistence
https://speakerdeck.com/mp911de/i-am-redis
https://redisdesktop.com
https://stackoverflow.com/questions/35621324/how-to-create-own-database-in-redis
https://www.tutorialspoint.com/redis/redis_data_types.htm
http://redisdoc.com/hash/hmset.html
https://blog.csdn.net/j_mani/article/details/76459176

沒有留言:

張貼留言

© Mac Taylor, 歡迎自由轉貼。
Background Email Pattern by Toby Elliott
Since 2014