Redis整理第二波(啟動、命令)
啟動
配置數據庫數量:
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的使用之命令返回值:
狀態回復(最簡單的回復-redis提供的測試命令) redis>PING PONG 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 |
Redis整理第二波(啟動、命令)