Redis 與其他 key - value 緩存產(chǎn)品有以下三個(gè)特點(diǎn):
- Redis支持?jǐn)?shù)據(jù)的持久化茉贡,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用文捶。
- Redis不僅僅支持簡(jiǎn)單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set帚豪,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)草丧。
- Redis支持?jǐn)?shù)據(jù)的備份狸臣,即master-slave模式的數(shù)據(jù)備份。
Redis優(yōu)勢(shì)
- 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 昌执。
- 豐富的數(shù)據(jù)類型 – Redis支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類型操作烛亦。
- 原子 – Redis的所有操作都是原子性的,同時(shí)Redis還支持對(duì)幾個(gè)操作全并后的原子性執(zhí)行懂拾。
- 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過(guò)期等等特性煤禽。
安裝
windows : 下載地址:https://github.com/MSOpenTech/redis/releases 自行選擇安裝
linux : 下載地址:http://redis.io/download 自行編譯安裝
開(kāi)啟服務(wù)
在安裝目錄運(yùn)行 redis-server.exe redis.windows.conf
開(kāi)啟控制臺(tái) redis-cli.exe -h 127.0.0.1 -p 6379
然后就可以在控制臺(tái)輸入了,例子:
set myKey hello_world
get myKey
此時(shí)控制將輸出 hello_world
Redis配置
Redis的配置文件linux環(huán)境下為redis.conf, Windows環(huán)境下為redis.windows.conf
在命令模型下:
獲得配置信息命令
CONFIG GET * //顯示所有的配置信息
設(shè)置配置信息命令:
CONFIG SET
Redis支持的數(shù)據(jù)類型
Redis支持五種數(shù)據(jù)類型:string(字符串)岖赋,hash(哈希)檬果,list(列表),set(集合)及zset(sorted set:有序集合)唐断。
Example:
String類型
string類型是二進(jìn)制安全的选脊。意思是redis的string可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對(duì)象 脸甘。
string類型是Redis最基本的數(shù)據(jù)類型恳啥,一個(gè)鍵最大能存儲(chǔ)512MB。
基本命令:
set name payne
get name
控制臺(tái)輸出“payne”
Hash類型
Redis hash 是一個(gè)鍵名對(duì)集合斤程。
Redis hash是一個(gè)string類型的field和value的映射表角寸,hash特別適合用于存儲(chǔ)對(duì)象菩混。
HMSET user:1 username payne password payne
基本命令
hmset
hset
hgetall
hget
127.0.0.1:6379> HMSET user:1 username runoob password runoob points 200
OK
127.0.0.1:6379> HGETALL user:1
1) "username"
2) "runoob"
3) "password"
4) "runoob"
5) "points"
6) "200"
List類型
Redis 列表是簡(jiǎn)單的字符串列表,按照插入順序排序扁藕。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)沮峡。
redis 127.0.0.1:6379> lpush runoob redis
(integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb
(integer) 2
redis 127.0.0.1:6379> lpush runoob rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
Set 類型
Redis的Set是string類型的無(wú)序集合。
集合是通過(guò)哈希表實(shí)現(xiàn)的亿柑,所以添加邢疙,刪除,查找的復(fù)雜度都是O(1)
redis 127.0.0.1:6379> sadd runoob redis
(integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob
1) "rabitmq"
2) "mongodb"
3) "redis"
zset類型(有序集合)
Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復(fù)的成員望薄。
不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù)疟游。redis正是通過(guò)分?jǐn)?shù)來(lái)為集合中的成員進(jìn)行從小到大的排序。
zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)痕支。
redis 127.0.0.1:6379> zadd runoob 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE runoob 0 1000
1) "redis"
2) "mongodb"
3) "rabitmq"
Redis 幫助
在命令行模型下輸入help <command>