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