1. 程式人生 > >Redis整理第二波(啟動、命令)

Redis整理第二波(啟動、命令)

span 鏈接 個數 flushall 轉義符 border base 字符串類型 mysq

啟動

配置數據庫數量:

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整理第二波(啟動、命令)