redis 英語全稱:( REmote DIctionary Server )遠程字典服務器
是一個開源的、使用C語言編寫的、支持網絡交互的、可基於內存也可持久化的Key-Value數據庫。redis的官網地址,很是好記,是redis.io。(特地查了一下,域名後綴io屬於國家域名,是british Indian Ocean territory,即英屬印度洋領地)
目前,Vmware在資助着redis項目的開發和維護。html
redis的做者叫Salvatore Sanfilippo,來自意大利的西西里島,如今居住在卡塔尼亞。目前供職於Pivotal公司。
他使用的網名是antirez,若是你有興趣,能夠去他的博客逛逛,地址是antirez.com,固然也能夠去follow他的github,地址是http://github.com/antirez。linux
redis支持多種平臺,多數狀況下會在Linux下搭建Redis服務器,爲了方便教學,咱們採用windows平臺,不過只有64位的版本。
下載地址:
Linux版本:http://www.redis.cn/download.html
windowns版本(微軟基於linux系統下的redis寫的windowns版本):https://github.com/MicrosoftArchive/redis/releasesgit
這裏咱們下載 Redis-x64-xxx.zip壓縮包到 C 盤,解壓後,將文件夾從新命名爲 redis。
Redis分爲服務器和客戶端兩種,必須啓動服務器才能使用Redis。
啓動完成,出現後面的效果github
注意:在使用redis服務器啓動後不要關閉cmd窗口redis
啓動服務器:
--語法:redis-server
注意:啓動時加載的是默認配置文件,若是要加載其餘文件用如下指令
--Redis-server 配置文件路徑數據庫
使用DOS窗口啓動客戶端(本機)
--redis-cli
啓動客戶端(遠程)
--Redis-cli –h host –p port –a password
--例如:redis-cli -h 127.0.0.1 -p 6379
驗證
--Ping
--響應:pong
windows
進程相關:
--單進程模型來處理客戶端的請求。對讀寫等事件的響應是經過對epoll函數的包裝來作到的。Redis的實際處理速度徹底依靠主進程的執行效率。
密碼相關:
--統一密碼管理,16個庫都是一樣密碼,要麼所有連上,要麼一個也鏈接不上。
Redis索引
--數據庫索引從0開始安全
Key鍵:Redis 鍵命令用於管理 redis 的鍵
基本語法:
redis 127.0.0.1:6379> COMMAND KEY_NAME服務器
Redis string類型網絡
string是redis最基本的類型,一個key對應一個value。
String類型是二進制安全的。意思是redis的string能夠包含任何數據。好比jpg圖片或者序列化的對象。
string類型是Redis最基本的數據類型,一個redis中字符串value最多能夠是512M。
String相關的指令:
Redis 哈希(Hash)
Redis Hash:
是一個string類型的field和value(以鍵值)的映射表,hash特別適合用於存儲對象。
存儲大小:
每一個 hash 能夠存儲 232 - 1 鍵值對(40多億)。
Redis 列表(List)
Redis列表list:
--Redis列表是簡單的字符串列表,按照插入順序排序。你能夠添加一個元素到列表的頭部(左邊)或者尾部(右邊)
存儲數據量:
-- 一個列表最多能夠包含 232 - 1 個元素 (4294967295, 每一個列表超過40億個元素)
Redis 集合(Set)
Redis 集合-set
--Redis的Set是string類型的無序集合。集合成員是惟一的,這就意味着集合中不能出現重複的數據。
--Redis 中 集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。
存儲數據量:
--集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。
Redis 有序集合(sorted set)
Redis 有序集合(sorted set):
--Redis 有序集合和集合同樣也是string類型元素的集合,且不容許重複的成員。
--不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。
--有序集合的成員是惟一的,但分數(score)卻能夠重複。
存儲數量:
--集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。
各個數據類型的應用場景