Redis 與其他 key - value 緩存產(chǎn)品有以下三個特點:
- Redis支持數(shù)據(jù)的持久化,可以將內存中的數(shù)據(jù)保存在磁盤中,重啟的時候可以再次加載進行使用。
- Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結構的存儲。
- Redis支持數(shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。
Redis優(yōu)勢
- 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
- 豐富的數(shù)據(jù)類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類型操作。
- 原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全并后的原子性執(zhí)行。
- 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
安裝
windows : 下載地址:https://github.com/MSOpenTech/redis/releases 自行選擇安裝
linux : 下載地址:http://redis.io/download 自行編譯安裝
開啟服務
在安裝目錄運行 redis-server.exe redis.windows.conf
開啟控制臺 redis-cli.exe -h 127.0.0.1 -p 6379
然后就可以在控制臺輸入了,例子:
set myKey hello_world
get myKey
此時控制將輸出 hello_world
Redis配置
Redis的配置文件linux環(huán)境下為redis.conf, Windows環(huán)境下為redis.windows.conf
在命令模型下:
獲得配置信息命令
CONFIG GET * //顯示所有的配置信息
設置配置信息命令:
CONFIG SET
Redis支持的數(shù)據(jù)類型
Redis支持五種數(shù)據(jù)類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
Example:
String類型
string類型是二進制安全的。意思是redis的string可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對象 。
string類型是Redis最基本的數(shù)據(jù)類型,一個鍵最大能存儲512MB。
基本命令:
set name payne
get name
控制臺輸出“payne”
Hash類型
Redis hash 是一個鍵名對集合。
Redis hash是一個string類型的field和value的映射表,hash特別適合用于存儲對象。
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 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。
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類型的無序集合。
集合是通過哈希表實現(xiàn)的,所以添加,刪除,查找的復雜度都是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類型元素的集合,且不允許重復的成員。
不同的是每個元素都會關聯(lián)一個double類型的分數(shù)。redis正是通過分數(shù)來為集合中的成員進行從小到大的排序。
zset的成員是唯一的,但分數(shù)(score)卻可以重復。
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>