啟動
配置數據庫數量:
Redis默認開啟16個數據庫,不能像mysql自定義數據庫名稱,只能是數值,不能修改。
配置內存大小:
會生成一個和內存大小一樣的文件。
maxmemory 200mb #在真實環境必須部署,否則物理內存會被耗盡。一般配置200mb/500mb/1gb/2gb。可以分散到多台服務器,和其它業務共享服務器,以充分利用資源。同時因為分散,防止單點故障,造成大量緩存失效。
啟動
redis-server #默認找redis.conf配置文件
redis-server & #上面ctrl+c中斷reis會退出,這個不會
redis-server redis6380.conf #指定配置文件,這樣可以啟動多個實例
注意兩種啟動方式的差異
ps -ef|grep redis
root 3511 1 0 16:29 ? 00:00:01 redis-server *:6379
root 3515 1 0 16:29 ? 00:00:01 redis-server 127.0.0.1:6380
注釋掉redis.conf配置文件中的48行;# bind 127.0.0.1 ::1即可
設置訪問密碼
默認沒有密碼,可以隨意訪問。
redis速度相當快,在一個較好的服務器下,外部用戶每秒可以進行15w此的密碼嘗試,這意味着必須指定非常強大的密碼來防止暴力破解。
如果要加,打開redis.conf的
requirepass 123456 #480行,設置請求密碼,這樣訪問時都需要先登錄
127.0.0.1:6379> auth 123456 #客戶端訪問方式
jedis.auth(“123456”); #jedis訪問方式
常用命令
redis-cli的使用之發送命令:
默認連接:IP 127.0.0.1 端口 6379
redis-cli
指定IP端口:
redis-cli –h 127.0.0.1 –p 6379
Redis提供了PING-PONG機制,測試與客戶端和服務器鏈接是否正常
redis-cli ping
或
redis-cli
redis 127.0.0.1:6379>ping
PONG
redis-cli的使用之命令返回值:
127.0.0.1:6379>SET test 123
OK
錯誤回復(以error開頭,后面跟着錯誤信息)
127.0.0.1:6379>TEST
(error) ERR unknown command 'TEST'
整數回復
127.0.0.1:6379>INCR test_incr
(integer) 1
字符串回復(最長久的一種回復,雙引號包裹)
127.0.0.1:6379>get test
“123”
多行字符串回復
127.0.0.1:6379>KEYS *
1) "test_incr"
2) "test"
退出
127.0.0.1:6379> exit
關閉
127.0.0.1:6379> shutdown
keys
字符串類型是redis中最基本的數據類型,它能存儲任何形式的字符串,包括二進制數據。
可以存儲JSON化的對象、字節數組等。一個字符串類型鍵允許存儲的數據最大容量是512MB。
賦值與取值: SET key value GET key 127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379> set test 123 OK 127.0.0.1:6379> set test1 ab OK 127.0.0.1:6379> keys * 1) "test1" 2) "test" 127.0.0.1:6379> get test "123" 127.0.0.1:6379> get test1 "abc" 127.0.0.1:6379> get test2 (nil) 127.0.0.1:6379>
select
redis默認支持16個數據庫,對外都是以一個從0開始的遞增數字命名,可以通過參數database來修改默認數據庫個數。
客戶端連接redis服務后會自動選擇0號數據庫,可以通過select命令更換數據庫,
說明:
Redis不支持自定義數據庫名稱。
Redis不支持為每個數據庫設置訪問密碼。
Redis的多個數據庫之間不是安全隔離的,FLUSHALL命令會清空所有數據庫的數據。
例如選擇1號數據庫:
127.0.0.1:6379>SELECT 1 OK 127.0.0.1:6379>GET test (nil)
獲取符合規則的建名列表。
說明:
? 匹配一個字符
* 匹配任意個(包括0個)字符
[] 匹配括號間的任一字符,可以使用“-“表示范圍。如a[a-d]匹配ab/ac/ad
\x 匹配字符x,用於轉義符合,如果要匹配“?“就需要使用\?
KEYS * keys test[_]* keys t[a-d]
判斷一個鍵是否存在
如果鍵存在則返回整數類型1,否則返回0。
127.0.0.1:6379> keys * 1) "test_incr" 2) "test" 127.0.0.1:6379> exists test (integer) 1 127.0.0.1:6379> exists test1 (integer) 0 127.0.0.1:6379>
刪除鍵
可以刪除一個或者多個鍵,多個鍵用空格隔開,返回值是刪除的鍵的個數
127.0.0.1:6379> del test (integer) 1 127.0.0.1:6379> del test (integer) 0 127.0.0.1:6379> del test test_incr (integer) 1 127.0.0.1:6379>
獲得鍵值的數據類型
返回值可能是string(字符串)、hash(散列類型)、list(列表類型)、set(集合類型)、zset(有序集合類型)。
127.0.0.1:6379> keys * 1) "test1" 2) "test" 127.0.0.1:6379> type test string 127.0.0.1:6379> type test1 string
清空所有數據庫 flushall
127.0.0.1:6379> FLUSHALL
OK
清空當前數據庫flushdb
127.0.0.1:6379> FLUSHDB
OK
