Redis基本用法
Redis
本周我們來對redis做一些探討。之前大家應該經常聽說NoSQL這個詞,所謂NoSQL字面意思就是沒有SQL,也就是說我們之前所接觸的數據庫大都是關系數據庫(如MySQL,SQL Server等),對數據庫的操作經常是通過SQL語句。但在NoSQL裏面,我們對數據庫的操作將沒有任何SQL語句。怎麽樣是不是很神奇??好吧其實很簡單。下面為大家一一講解。
Redis是一種內存數據庫,也就是說它是一種內存操作,傳統的數據庫數據是放在硬盤,相比Redis速度肯定是跟不上的。
Redis是一種K/V 數據庫,支持多種數據結構,之所以說不用SQL語句,因為我們可以直接通過這些數據結構來存取數據。
D:\redis>redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> set name liwei
OK
(0.90s)
127.0.0.1:6379> get liwei
"hello world"
127.0.0.1:6379> get name
"liwei"
127.0.0.1:6379>
就像上面一樣,直接用get方法就可以訪問,其支持HashMap,List等多種數據結構,比原先SQL更加方便。
Redis的持久化
前面我們講到了Redis是純內存操作,那麽我們存取數據也是內存裏存取,這裏的問題就是如果這次服務器關了,那數據是不是就丟了呢,其實並不會,Redis本身也是有持久化操作的,並切數據是存放在其dump.rdb文件裏的,在redis的配置文件中可以看到不同的持久化配置
save 900 1
save 300 10
save 60 10000
上面的意思是一種為900s內超過1個key存入就寫入一次,一種為300s內超過10個key存入就寫入一次,第三種是10000內超過60個就寫入一次。大家可以根據自己的需要自己配置,配置的原則是在數據安全和程序運行效率之間選一個最合適的。
Redis與SQL
Redis也有不足的地方,最大的弊端就是占內存,在服務器啟動的時候Redis會將數據從持久化文件中加載到內存中,現在大多電腦內存還是較小的,如果是海量數據我們是無法在redis中操作的,Redis中的數據一旦超過了與分配的內存,接下來的寫入就失效了。所以我們要在SQL和redis中靈活切換,將SQL中常訪問的小部分數據放在redis中,讓redis充當cache一樣的角色,這樣SQL與NoSQL結合才能讓項目更完美。
Redis基本用法