redis初识
redis初識
1.1 Redis是什么
介紹
開源:早起版本2w3千行
基于鍵值對的存儲系統(tǒng):字典形式
多種數(shù)據(jù)結(jié)構(gòu):字符串,hash,列表,集合,有序集合
高性能,功能豐富
那些公司在用
github,twitter,stackoverflow,阿里,百度,微博,美團(tuán),搜狐
1.2 Redis特性(8個)
速度快:10w ops(每秒10w讀寫),數(shù)據(jù)存在內(nèi)存中,c語言實(shí)現(xiàn),單線程模型
持久化:rdb和aof
多種數(shù)據(jù)結(jié)構(gòu):
5大數(shù)據(jù)結(jié)構(gòu)
BitMaps位圖:布隆過濾器 本質(zhì)是 字符串
HyperLogLog:超小內(nèi)存唯一值計數(shù),12kb HyperLogLog 本質(zhì)是 字符串
GEO:地理信息定位 本質(zhì)是有序集合
支持多種編程語言:基于tcp通信協(xié)議,各大編程語言都支持
功能豐富:發(fā)布訂閱(消息) Lua腳本,事務(wù)(pipeline)
簡單:源代碼幾萬行,不依賴外部庫
主從復(fù)制:主服務(wù)器和從服務(wù)器,主服務(wù)器可以同步到從服務(wù)器中
高可用和分布式:
2.8版本以后使用redis-sentinel支持高可用
3.0版本以后支持分布式
1.3 Redis單機(jī)安裝
1.3.1下載安裝
# 下載 wget http://download.redis.io/releases/redis-5.0.7.tar.gz # 解壓 tar -xzf redis-5.0.7.tar.gz # 建立軟連接 ln -s redis-5.0.7 redis cd redis make&&make install # 在src目錄下可以看到 redis-server ===> redis服務(wù)器 redis-cli ===> redis命令行客戶端 redis-benchmark ===> redis性能測試工具 redis-check-aof ===> aof文件修復(fù)工具 redis-check-dump ===> rdb文件檢查工具 redis-sentinel ===> sentinel服務(wù)器,哨兵 redis作者對windows維護(hù)不好,window自己有安裝包# 卸載redis # 1、查看redis進(jìn)程; ps aux|grep redis # 2、kill掉進(jìn)程; kill 進(jìn)程id # 3、進(jìn)入到redis目錄 cd /usr/local/ # 4、刪除redis對應(yīng)的文件 rm -f /usr/local/redis/bin/redis* rm -f /usr/local/bin/redis* # 5、刪除對應(yīng)的文件 rm -rf redis1.3.2三種啟動方式
1.3.2.1 最簡啟動
#最簡啟動 redis-server ps -ef|grep redis # 查看進(jìn)程 netstat -antpl|grep redis # 查看端口 redis-cli -h ip -p port ping # 命令查看1.3.2.2 動態(tài)參數(shù)啟動
# 動態(tài)參數(shù)啟動 redis-serve --port 6380 # 啟動,監(jiān)聽6380端口1.3.2.2 配置文件啟動
# 配置文件啟動(6379對應(yīng)手機(jī)按鍵MERZ,意大利女歌手Alessia Merz的名字) # 通過redis-cli連接,輸入config get * 可以獲得默認(rèn)配置 # 在redis目錄下創(chuàng)建config目錄,copy一個redis.conf文件 daemonize ===> 是否是守護(hù)進(jìn)程啟動(no|yes) port ===> 端口號 logfile ===> redis系統(tǒng)日志 dir ===> redis工作目錄配置文件
# 查看一下默認(rèn)注釋,把#和空格去掉 cat redis.conf|grep -v "#" |grep -v "^$" # 重定向到另一個文件 cat redis.conf|grep -v "#" |grep -v "^$" >redis-6382.conf''' daemonize yes # 是否以守護(hù)進(jìn)程啟動 pidfile /var/run/redis.pid # 進(jìn)程號的位置,刪除 port 6379 # 端口號 dir "/opt/soft/redis/data" # 工作目錄 logfile “6379.log” # 日志位置 # 其他全刪掉 '''# 在redis目錄下新建data目錄,用來存放書籍 # 啟動redis redis-server config/redis.conf # 查看進(jìn)程 ps -ef |grep redis-server |grep 6379 # 查看日志 cd data cat 6379.log1.3.3 客戶端連接(命令)
###客戶端連接### redis-cli -h 127.0.0.1 -p 6379 ping # 返回PONG# 有密碼的情況可以兩種登陸方式# 方式一redis-cli -h 127.0.0.1 -p 6370 -a 123456# 方式二先登陸,再通過auth輸入密碼 redis-cli -h 127.0.0.1 -p 6370auth 123456# redis-cli進(jìn)入 CONFIG GET * # 一百多對建值 CONFIG SET maxmemory 128M # 設(shè)置最大使用的內(nèi)存 CONFIG set requirepass 123456 # 設(shè)置密碼 CONFIG REWRITE # 保存到配置文件1.3.4 redis返回值
# redis返回值 狀態(tài)回復(fù):ping ===> PONG錯誤回復(fù):hget hello field ===> (error)WRONGTYPE Operation against整數(shù)回復(fù):incr hello ===> (integer) 1字符串回復(fù):get hello ===> "world"多行字符串回復(fù):mget hello foo ===> "world" "bar"1.4 Redis典型使用場景
1. 緩存系統(tǒng):
使用最廣泛的就是緩存
2. 計數(shù)器:
網(wǎng)站訪問量,轉(zhuǎn)發(fā)量,評論數(shù)(文章轉(zhuǎn)發(fā),商品銷量,單線程模型,不會出現(xiàn)并發(fā)問題)
3. 消息隊列:
發(fā)布訂閱,阻塞隊列實(shí)現(xiàn)(簡單的分布式,blpop:阻塞隊列,生產(chǎn)者消費(fèi)者)
4. 排行榜:
有序集合(閱讀排行,點(diǎn)贊排行,推薦(銷量高的,推薦))
5. 社交網(wǎng)絡(luò):
很多特效跟社交網(wǎng)絡(luò)匹配,粉絲數(shù),關(guān)注數(shù)
6. 實(shí)時系統(tǒng):
垃圾郵件處理系統(tǒng),布隆過濾器
總結(jié)
- 上一篇: childnodes 兼容性问题
- 下一篇: FileSystemWatcher监听文