Redis簡介
Redis 是完全開源免費的,遵守BSD協(xié)議,是一個高性能的key-value數(shù)據(jù)庫悄但。
特點:
- Redis支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中石抡,重啟的時候可以再次加載進行使用檐嚣。
- Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時還提供list啰扛,set嚎京,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲隐解。
- Redis支持數(shù)據(jù)的備份鞍帝,即master-slave模式的數(shù)據(jù)備份。
基本配置與使用
- 啟動 Redis
redis-server
- 關(guān)閉 Redis
redis-cli shutdown
- Redis客戶端啟動
redis-cli
- Redis客戶端退出
quit
- 在遠程服務器上執(zhí)行命令
redis-cli -h host -p port -a password
//host煞茫、port帕涌、password
實例:
redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
- 查看是否設(shè)置了密碼驗證
127.0.0.1:6379> CONFIG get requirepass
默認情況下 requirepass 為空,可以通過下面命令來修改該參數(shù):
127.0.0.1:6379> CONFIG set requirepass "ljf123"
設(shè)置密碼后续徽,客戶端連接 redis 服務就需要密碼驗證蚓曼,否則無法執(zhí)行命令。
127.0.0.1:6379> AUTH "ljf123"
- Redis配置
Redis 的配置文件位于 Redis 安裝目錄下钦扭,文件名為 redis.conf纫版。
語法:
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
實例:
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
//使用 * 號獲取所有配置項
redis 127.0.0.1:6379> CONFIG GET *
Redis 基本命令
- 選擇數(shù)數(shù)據(jù)庫,index為索引值名
select [index]
- 查看數(shù)據(jù)庫內(nèi)所有的key
keys *
- 清空當前數(shù)據(jù)庫
flushdb
- 清空所有數(shù)據(jù)庫
flushall
- Redis 字符串
SET key vakue
GET key
實例:
redis 127.0.0.1:6379> SET test redis
OK
redis 127.0.0.1:6379> GET test
"redis"
- Redis 哈希(Hash)
Redis hash 是一個string類型的field和value的映射表客情,hash特別適合用于存儲對象其弊。
實例:
127.0.0.1:6379> HMSET runoobkey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
127.0.0.1:6379> HGETALL runoobkey
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
- Redis 列表(List)
Redis列表是簡單的字符串列表,按照插入順序排序膀斋。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)梭伐。
實例:
redis 127.0.0.1:6379> LPUSH runoobkey redis
(integer) 1
redis 127.0.0.1:6379> LPUSH runoobkey mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH runoobkey mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE runoobkey 0 10
1) "mysql"
2) "mongodb"
3) "redis"
- Redis 集合(Set)
Redis 的 Set 是 String 類型的無序集合。集合中不出現(xiàn)重復的數(shù)據(jù)概页。
實例:
edis 127.0.0.1:6379> SADD runoobkey redis
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mongodb
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mysql
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS runoobkey
1) "mysql"
2) "mongodb"
3) "redis"
- Redis 有序集合(Sorted Set)
Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員籽御。
不同的是每個元素都會關(guān)聯(lián)一個double類型的分數(shù)。redis正是通過分數(shù)來為集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(shù)(score)卻可以重復技掏。
實例:
redis 127.0.0.1:6379> ZADD runoobkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD runoobkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"