《Redis开发与运维》学习第一章
第一章 初識Redis
**以下摘自書中:
**Redis是一種基于鍵值對的(key-value)的NoSQL數據庫。Redis中的值可以是string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合),Bitmaps(位圖),HyperLogLog,GEO(地理信息定位)等多種數據結構和算法。
Redis 特性:
1、 速度快
Redis所有的數據都是存放在內存中的;Redis是用C語言實現的;Redis使用了單線程架構;
2、 基于鍵值對的數據結構服務器
Redis中的值可以是string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合),Bitmaps(位圖),HyperLogLog,GEO(地理信息定位)等多種數據結構和算法。
3、 豐富的功能
提供了鍵過期功能,可以用來實現緩存;
提供了發布訂閱功能,可以用來實現消息系統;
支持Lua腳本功能,可以利用Lua創造出新的Redis命令;
提供了簡單的事務功能,能在一定程度上保證事務特性;
提供了流水線功能,客戶端能將一批命令一次性穿到Redis,減少了網絡開銷;
4、 簡單穩定
Redis 源碼少;Redis使用單線程模型;Redis不需要依賴操作系統中的類庫;
5、 客戶端語言多
支持Redis客戶端的語言很多,如:Java,PHP,Python,C,C++,Nodejs
6、 持久化
通常,將數據存放在內存中是不安全的,因此Redis提供了兩種持久化方式:RDB AOF 利用這兩種策略將內存中的數據保存到硬盤中.
7、 主從復制
復制功能是分布式Redis的基礎。
8、 高可用和分布式
用好Redis的建議:
1.切勿當作黑盒使用,開發與運維同樣重要很多使用Redis的開發者認為只要會用API開發相應的功能就可以,更有甚者認為Redis 就 get、set、del,不需要知道Redis的原理。但是在我們實際運維和使用Redis的過程中發現,很多線上的故障和問題都是由于完全把Redis當做黑盒造成的,如果不了解Redis的單線程模型,有些開發者會在有上千萬個鍵的Redis上執行keys *操作,如果不了解持久化的相關原理,會在一個寫操作量很大的Redis上配置自動保存RDB.而且在很多公司內只有專職的關系型數據庫DBA,并沒有NoSQL的相關運維人員,也就是說開發者很有可能會自己運維Redis,對于Redis的開發者來說既是好事又是壞事。站在好的方面看,開發人員可以通過運維Redis 真正了解Redis的一些原理,不單純停留在開發上。站在壞的方面看,Redis的開發人員不僅要支持開發,還要承擔運維的責任,而且由于運維經驗不足可能會造成線上故障。但是從實際經驗來看,運維足夠規模的Redis會對用好Redis更加有幫助。
2.閱讀源碼
我們在前面提到過,Redis是開源項目,由于作者對Redis代碼的極致追求,Redis的代碼量相對于許多NoSQL數據庫來說是非常小的,也就意味著作為普通的開發和運維人員也是可以“吃透”Redis的。通過閱讀優秀的源碼,不僅能夠加深我們對于Redis的理解,而且還能提高自身的編碼水平,甚至可以對Redis做定制化,也就是說可以修改Redis的源碼來滿足自身的需求,例如新浪微博在Redis的早期版本上做了很多的定制化來滿足自身的需求,豌豆莢也開源基于Proxy的Redis分布!
=====================================================================================================
1.5.1安裝Redis
Linux下推薦使用源碼安裝。
1.5.2 配置 啟動 操作 關閉Redis
1 啟動Redis****
三種方式啟動:默認配置 運行配置 配置文件啟動
推薦使用默認配置啟動:redis-server
會輸出相應版本的版本號;默認端口6379
2 Redis命令行客戶端
redis-cli 連接Redis客戶端的兩種方式:
交互式方式:redis-cli -h {host} -p -p {post} ;例如:redis-cli -h 127.0.0.1 -p 6379
**命令方式:**redis-cli -h {host} -p {port} {command} ;例如:redis-cli -h 127.0.0.1 -p 6379 get hello 得到world
3 停止Redis服務
shutdown 命令
redis-cli shutdown
總結
以上是生活随笔為你收集整理的《Redis开发与运维》学习第一章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件开发之文档的重要性
- 下一篇: linux cmake编译源码,linu