Redis简介及安装
生活随笔
收集整理的這篇文章主要介紹了
Redis简介及安装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Redis簡介及安裝
文章目錄
- Redis簡介及安裝
- 一、nosql介紹
- 1.NoSQL
- 2.NoSQL和SQL數據庫的比較:
- 二、Redis
- 1.簡介
- 2.Redis特性
- 3.Redis 優(yōu)勢
- 4.redis應用場景
- 5.推薦閱讀
- 三、redis安裝
- 1.在線安裝
- 2.下載安裝包:
- 四、配置
- 1.配置
- 2.查看
- 3.綁定ip
- 4.端?,默認為6379
- 5.是否以守護進程運?
- 6.數據?件
- 7.數據?件存儲路徑
- 8.?志?件
- 9.主從復制
- 五、服務端客戶端操作命令
- 1.服務器端
- 2.客戶端
一、nosql介紹
1.NoSQL
- NoSQL:一類新出現的數據庫(not only sql) 它的特點:
- 不支持SQL語法
- 存儲結構跟傳統(tǒng)關系型數據庫中的那種關系表完全不同,nosql中存儲的數據都是KV形式
- NoSQL的世界中沒有一種通用的語言,每種nosql數據庫都有自己的api和語法,以及擅長的業(yè)務場景
- NoSQL中的產品種類相當多:
- Mongodb
- Redis
- Hbase hadoop
- Cassandra hadoop
2.NoSQL和SQL數據庫的比較:
- 適用場景不同:sql數據庫適合用于關系特別復雜的數據查詢場景,nosql反之
- “事務”特性的支持:sql對事務的支持非常完善,而nosql基本不支持事務
- 兩者在不斷地取長補短,呈現融合趨勢
- SQL數據庫被稱為關系型數據庫(RDBMS),而NoSQL數據庫被稱為非關系型數據庫或分布式數據庫。
- SQL數據庫是基于表的數據庫,而NoSQL數據庫則有基于文檔的,鍵值對的,圖形的或基于列式存儲的數據庫。
- SQL數據庫的數據結構必須事先先定義好,而NoSQL數據庫的數據是動態(tài)無結構的。
- SQL數據庫的負載能力是以增加硬件配置的垂直擴展方式來增加的,而NoSQL數據庫的負載能力可以通過增加數據庫服務器的數量來增加(屬于水平擴展)。
- SQL數據庫是使用SQL(結構化查詢語言)對數據進行定義和操作的,功能強大,語法統(tǒng)一。而NoSQL數據庫是使用UnQL(無結構查詢語言),其操作的對象主要是存儲在集合中的文檔,但UnQL語法不統(tǒng)一,不同的NoSQL數據庫語法各有不同。
- 常見的SQL數據庫有:MySql,Oracle,Postgres,Sqlite,MS-SQL等。NoSQL常見的有:MongoDB,BigTable,Redis,Hbase,Neo4j等。
- 對于復雜的查詢:SQL非常的擅長,而NoSQL則不擅長。因為NoSQL并沒有執(zhí)行復雜查詢的標準接口。相對于SQL的強大查詢能力,NoSQL的查詢能力就顯得有點捉襟見肘。
- 對于所能存儲的數據類型:SQL數據庫并不太適合分層次的數據存儲。 但是,NoSQL數據庫則可以很好的存儲分層次的數據,因為它是以鍵值對的形式存儲數據的,類似與JSON數據。NoSQL數據庫更傾向用于大數據。例如Hbase就是一個很好的例子。
- 對于基于大量事務的應用程序:SQL數據庫非常適合,因為它更加穩(wěn)定并且可以保證數據的原子性和一致性。而NoSQL對事務的處理能力有限。
- 在文檔支持方面:所有SQL數據庫的廠家對其數據庫產品都有很好的支持,并且有許多專家可以幫你部署大型的SQL數據庫擴展。而NoSQL現在僅有社區(qū)的支持,而可以幫助你部署大型NoSQL數據庫擴展的專家也很有限。
- 在屬性方面:SQL數據庫遵循ACID(即,原子性,一致性,隔離性,持久性)屬性,而NoSQL數據庫遵循的是CAP定理(即,一致性,可用性,分區(qū)容忍性)。
- 對于數據庫的分類:對于SQL數據庫,基于商業(yè)渠道SQL數據庫可分為開源或閉源產品。對于NoSQL數據庫,基于存儲數據的基本方式可分為圖形數據庫,鍵——值數據庫,文檔數據庫,列式數據庫,XML數據庫。
二、Redis
1.簡介
- Redis是一個開源的使用ANSIC語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API。
- 從2010年3月15日起,Redis的開發(fā)工作由VMware主持。從2013年5月開始,Redis的開發(fā)由Pivotal贊助。
- Redis是 NoSQL技術陣營中的一員,它通過多種鍵值數據類型來適應不同場景下的存儲需求,借助一些高層級的接口使用其可以勝任,如緩存、隊列系統(tǒng)的不同角色
2.Redis特性
Redis 與其他 key - value 緩存產品有以下三個特點:
- Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
- 它也通常被稱為數據結構服務器,因為值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
- Redis支持數據的備份,即master-slave模式的數據備份。
- 與傳統(tǒng)數據庫不同的是 Redis 的數據是存在內存中的,所以存寫速度非常快,因此 Redis 被廣泛應用于緩存方向。
- Redis為分布式緩存,在多實例的情況下,各實例共用一份緩存數據,緩存具有一致性。
3.Redis 優(yōu)勢
- 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
- 豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。
- 原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全并后的原子性執(zhí)行。
- 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
- 支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
- 支持數據的備份,即master-slave模式的數據備份。
4.redis應用場景
- 用來做緩存(ehcache/memcached)——redis的所有數據是放在內存中的(內存數據庫)
- 查詢出的數據保存到Redis中,下次查詢的時候直接從Redis中拿到數據。不用和數據庫進行交互。
- 可以在某些特定應用場景下替代傳統(tǒng)數據庫——比如社交類的應用
- 在一些大型系統(tǒng)中,巧妙地實現一些特定的功能:session共享、購物車
什么數據會存到redis數據庫中?
主要是熱點數據,不會經常改變的,一般是常量
比如登錄驗證的cookie,購物車,歷史瀏覽記錄都(只要具有一定時間的生命周期)
比如首頁的商品信息,一般不會變。
比如秒殺的商品信息,一般也不會變。
比如地圖的經緯度信息,一般也不會變。
- 用戶的關注列表,粉絲列表,消息列表等功能都可以用 Redis 的 List 結構來實現
- Redis 可以非常方便的實現如共同關注、共同粉絲、共同喜好等功能(Set 類似與列表,但可自動排重的)
- Redis不但提供了無需集合(Sets),還很體貼的提供了有序集合(Sorted Sets),因此,各種排行榜數據基本上都會使用Redis提供的Sorted Sets來實現
5.推薦閱讀
redis官方網站
redis中文官方網站
命令參考
三、redis安裝
1.在線安裝
- 直接輸入命令 sudo apt-get install redis-server
安裝完成后,Redis服務器會自動啟動。
使用ps -aux|grep redis命令可以看到服務器系統(tǒng)進程默認端口6379
- 使用netstat -nlt|grep 6379命令可以看到redis服務器狀態(tài)
- 使用sudo /etc/init.d/redis-server status命令可以看到Redis服務器狀態(tài)
2.下載安裝包:
- 下載:打開redis官方網站,推薦下載穩(wěn)定版本(stable)
- 解壓tar xzf redis-5.0.5.tar.gz
- 復制:推薦放到usr/local目錄下sudo mv redis-5.0.5 /usr/local/redis
- 進入redis目錄 cd /usr/local/redis/
- 生成:sudo make失敗則 使用 sudo make MALLOC=libc后再sudo make
- 測試 sudo make test 這段運行時間會較長
- 安裝:將redis的命令安裝到/usr/bin/目錄sudo make install
- 運行 redis-server
- 按ctrl+c停止
- 查看
redis-server redis服務器
redis-cli redis命令行客戶端
redis-benchmark redis性能測試工具
redis-check-aof AOF文件修復工具
redis-check-rdb RDB文件檢索工具
四、配置
1.配置
Redis的配置信息在/etc/redis/redis.conf下。2.查看
sudo vi /etc/redis/redis.conf3.綁定ip
綁定ip:如果需要遠程訪問,可將此?注釋,或綁定?個真實ip bind 127.0.0.14.端?,默認為6379
port 63795.是否以守護進程運?
如果以守護進程運?,則不會在命令?阻塞,類似于服務 如果以?守護進程運?,則當前終端被阻塞 設置為yes表示守護進程,設置為no表示?守護進程 推薦設置為yes daemonize yes6.數據?件
dbfilename dump.rdb7.數據?件存儲路徑
dir /var/lib/redis8.?志?件
logfile /var/log/redis/redis-server.log數據庫,默認有16個 database 16
9.主從復制
# 類似于雙機備份。 slaveof參考資料
redis配置信息
五、服務端客戶端操作命令
1.服務器端
- 服務器端的命令為redis-server
- 可以使?help查看幫助?檔
推薦使?服務的?式管理redis服務
redis-server --help- 啟動
- 停?
- 重啟
個人習慣
- ps -ef|grep redis 查看redis服務器進程
- sudo kill -9 pid 殺死redis服務器
- sudo redis-server /etc/redis/redis.conf 指定加載的配置文件
2.客戶端
- 客戶端的命令為redis-cli
- 連接redis
- 運?測試命令
- 切換數據庫
數據庫沒有名稱,默認有16個,通過0-15來標識,連接redis默認選擇第一個數據庫
select n總結
以上是生活随笔為你收集整理的Redis简介及安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django上传文件及分页
- 下一篇: Redis主从配置和集群配置