本章目錄:java
一,Redis介紹與基本配置mysql
1.Redis介紹git
1.1:數據庫分類github
-----關係類數據庫redis
關係類數據庫模型是把複雜的數據庫結構歸結爲簡單的二元關係(即二維表格形式)。包含Mysql,Oeacle,SqlServer等。sql
隨着互聯網WEB.2.0時代的到來,面臨着高併發,高性能的一系列的挑戰。mongodb
------非關係類數據庫數據庫
新型的數據庫模型,也被稱爲NoSql數據庫,NoSql本意是「NOTONLY SQL」,並非完全要否認關係型數據庫,而是做爲傳統關係型數據庫的一個有效補充。windows
包含memcached(純內存),redis(持久化緩存),mongodb (文檔的數據庫)緩存
1.2:非關係型數據庫的分類
1.key-value存儲數據庫
鍵值數據庫就相似傳統語言使用哈希表,能夠經過key來添加,查詢或刪除數據,由於使用key主鍵訪問,因此會得到很高的性能及擴展性。
典型產品:Memcached,Redis,MemcacheDB,BerKeleyDB
2.列儲存(Colum-oriedted)數據庫
瞭解便可,通常公司用不着,典型產品:Cassandra,HBase。
3.面向文檔(Docment-Oriedted)數據庫
面向文檔數據庫會將數據以文檔的形式儲存。每一個文檔都是自包含的數據單元,是一系列數據項的集合。典型產品:MorgoDB,CouchDB
4.圖形(Graph)數據庫
1.3:Redis介紹
1.Redis 是徹底開源免費的,遵照BSD協議,是一個高性能的key-value數據庫。
2.在Redis的存儲體系中,沒有表的概念,它至關於java中的map,由無數個key-value來存儲數據,一個key能夠存儲的value能夠是字符串、哈希表、列表、集合等Redis支持的數據類型。
3.在Redis中的數據查找中,只須要給定查找的key,就能夠找到對應存儲的value值,Redis在同一個數據庫中,key是惟一不重名的。
4.在redis的安裝當中,redis會默認建立db0~db15一共16個數據庫,絕大部分狀況下只須要使用默認的數據庫db0就能夠。
傳統關係型數據中,數據是以表的組織形式進行存儲,其中表內通常又含有多個字段,一個表能夠存儲多條記錄。
在redis數據庫中,數據是以鍵值對的形式進行存儲,一個數據庫中只有多個key,每個key只有一個對應的value。
2.Redis安裝
2.1,Window下安裝:
下載地址:https://github.com/MSOpenTech/redis/releases
選擇64位的ZIP壓縮包點擊下載,下載完成後解壓,並將解壓後的文件夾重命名爲redis,方便後面使用
2.2,運行Redis服務
2.2.1,使用cmd命令行進入解壓後的redis目錄
2.2.2,在redis目錄下 運行redis-server redis.windows.conf,啓動redis服務,此時當關閉命令窗口redis服務也會關閉,其中後面的redis.window.conf能夠省略
2.2.3,能夠將redis服務安裝成windows服務,在redis目錄下的命令窗口輸入:redis-server --service-install redis.windows.conf便可
2.2.4, 查看服務是否配置成功,右鍵計算機—管理—服務,查找是否有Redis服務,若是啓動,表明windows上的redis服務已經配置成功,redis服務已經啓動。
3.Redis命令
3.1,遠程鏈接本地Redis
啓動本機Redis客戶端:redis–cli ,此命令鏈接到本機的Redis服務,同時用PING命令檢測本機Redis服務是否啓動
鏈接遠程Redis服務: redis–cli –h host –p port –a 「password」
其中host爲遠程主機IP地址
Port爲遠程Redis服務端口號
Password爲遠程Redis服務密碼
用客戶端鏈接了redis服務以後,就能夠在當前命令行裏使用redis命令來操做redis數據庫了
3.2,Redis數據類型
Redis支持五種數據類型:String(字符串),Hash(哈希),list(列表),set(集合) 及zset(有序集合)
String(字符串)(最經常使用)
string是redis最基本的類型,是二進制安全的。意思是redis的string能夠包含任何數據。好比jpg圖片或者序列化的對象 。
string類型l是Redis最基本的數據類型,一個鍵最大能存儲512MB。
Hash(哈希)(經常使用)
Redis hash 是一個鍵值(key=>value)對集合。
Redis hash 是一個 string 類型的 key和 value 的映射表,hash 特別適合用於存儲對象,至關於java中的Map集合。
List(列表)
Redis 列表是簡單的字符串列表,按照插入順序排序。你能夠添加一個元素到列表的頭部(左邊)或者尾部(右邊)。
列表最多可存儲 232 - 1 元素 (4294967295, 每一個列表可存儲40多億)。
Set(集合)
Redis的Set是string類型的無序集合。
集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。
zset(sorted set:有序集合)(瞭解)
Redis zset 和 set 同樣也是string類型元素的集合,且不容許重複的成員。
不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。
zset的成員是惟一的,但分數(score)卻能夠重複。
3.3,Redis命令
在關係型數據庫中,各類數據庫都有本身對應操做命令,通常而言都是通用的SQL語句,
在redis中,也有一套專用的「SQL」語句,咱們通常稱其爲redis命令。
例如:
在mysql中想要查詢某張表的數據
Select * from tablename tablename爲表名
在redis中想要查詢某個key存儲的數據
Get keyname keyname爲key名
Redis中有5種支持的數據類型,針對不一樣的數據類型,Redis有不一樣的操做命令,接下來將會一一介紹。
Redis鍵命令
Redis字符串命令
Redis哈希(hash)命令
Redis列表(list)命令
Redis集合(set)命令
Redis緩存特性
性能極高
– Redis能讀的速度是110000次/s,寫的速度是81000次/s ,而關係型數據庫MYSQL讀寫速度僅爲2000次/s左右。
豐富的數據類型
– Redis支持二進制安全的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操做。
原子 性
– Redis的全部操做都是原子性的,意思就是要麼成功執行要麼失敗徹底不執行。單個操做是原子性的。多個操做也支持事務,即原子性,經過MULTI和EXEC指令包起來。
豐富的特性 – Redis還支持 publish/subscribe通知訂閱模式, key 過時等等特性。