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