1. 程式人生 > 實用技巧 >Redis資料庫學習(基礎)

Redis資料庫學習(基礎)

Redis介紹

REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value儲存系統。

Redis 是完全開源免費的,遵守BSD協議,是一個高效能的key-value資料庫。

Redis安裝

linux下:

$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make

安裝後

$ cd src
$ ./redis-server

就可以啟動redis

在後臺啟動 ./redis-server &

$ cd src
$ ./redis-cli

就可以與redis互動了

redis配置

Redis 的配置檔案位於 Redis 安裝目錄下,檔名為 redis.conf(Windows 名為 redis.windows.conf)。

你可以通過 CONFIG 命令檢視設定配置項。

檢視配置: CONFIG GET

格式: redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

編輯配置: CONFIG SET

語法: redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

幾個常見配置:

port 6379 : 埠,預設6379

bind 127.0.0.1 : 繫結的主機地址 (127.0.0.1 為本機可訪問,0.0.0.0 任意機器可訪問,redis未授權訪問)

dir ./ : 指定本地資料庫存放目錄,常用來寫shell

dbfilename dump.rdb : 指定本地資料庫檔名,預設值為 dump.rdb (配合上一條寫SHELL)

Redis資料型別

Redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。

string:
redis 的 string 可以包含任何資料。比如jpg圖片或者序列化的物件,string 型別的值最大能儲存 512MB。

Hash:
Redis hash 是一個鍵值(key=>value)對集合

Redis hash 是一個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件

List(列表):

Redis 列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素到列表的頭部(左邊)或者尾部(右邊)

Set(集合):

Redis 的 Set 是 string 型別的無序集合

zset(sorted set:有序集合)

Redis zset 和 set 一樣也是string型別元素的集合,且不允許重複的成員

Redis命令

客戶端基本語法: redis-cli

啟動 redis 伺服器,開啟終端並輸入命令 redis-cli,該命令會連線本地的 redis 服務。

在遠端服務上執行命令

如果需要在遠端 redis 服務上執行命令,同樣我們使用的也是 redis-cli 命令。

$ redis-cli -h host -p port -a password

Redis 鍵命令

Redis 鍵命令用於管理 redis 的鍵。

基本語法 : COMMAND KEY_NAME

例: SET lonmar hacker

DEL 刪除命令。 如果鍵被刪除成功,命令執行後輸出 (integer) 1,否則將輸出 (integer) 0

lonmar 是 鍵 hacker是 value值

其他的幾個鍵命令:

EXISTS key 檢查給定 key 是否存在。

DUMP key 序列化給定 key ,並返回被序列化的值。

TYPE key 返回 key 所儲存的值的型別。

Redis 字串(String)

Redis 字串資料型別的相關命令用於管理 redis 字串值

其實和key value類似

語法 COMMAND KEY_NAME

常用的 redis 字串命令:

SET key value 設定指定 key 的值
GET key 獲取指定 key 的值。
GETSET key value 將給定 key 的值設為 value ,並返回 key 的舊值(old value)。

Redis Hash

常用命令:

HDEL key field1 [field2] 刪除一個或多個雜湊表字段
HEXISTS key field 檢視雜湊表 key 中,指定的欄位是否存在。
HGET key field 獲取儲存在雜湊表中指定欄位的值。
HGETALL key 獲取在雜湊表中指定 key 的所有欄位和值
HINCRBY key field increment 為雜湊表 key 中的指定欄位的整數值加上增量 increment
HKEYS key 獲取所有雜湊表中的欄位
HMGET key field1 [field2] 獲取所有給定欄位的值
HMSET key field1 value1 [field2 value2 ] 同時將多個 field-value (域-值)對設定到雜湊表 key 中。

Redis 資料備份與恢復

Redis SAVE 命令用於建立當前資料庫的備份

redis Save 命令基本語法:

redis 127.0.0.1:6379> SAVE

redis 127.0.0.1:6379> SAVE 
OK

恢復資料

如果需要恢復資料,只需將備份檔案 (dump.rdb) 移動到 redis 安裝目錄並啟動服務即可

獲取 redis 目錄: CONFIG GET dir

redis安全性

給redis加鎖

通過命令 CONFIG get requirepass 檢視是否設定了密碼驗證:

預設情況下 requirepass 引數是空的,即無需密碼訪問redis

新增密碼 CONFIG set requirepass "123456"

AUTH

如上一張圖所示的,設定密碼後要認證

AUTH PASSWORD