目錄
- Redis概述
- Redis應用場景
-
- 配合關系型資料庫做高速緩存
- 多樣的資料結構存儲持久化資料
- Redis安裝
-
- 1、安裝 gcc 編譯器
- 2、下載下傳并安裝 Redis
- 3、安裝目錄:/usr/local/bin
- 4、啟動/關閉 redis server
- Redis是單線程+多路IO複用技術
Redis概述
Redis是一個開源的key-value存儲系統。
Redis 是一個開源(BSD許可)的,記憶體中的資料結構存儲系統,它可以用作資料庫、緩存和消息中間件。 它支援多種類型的資料結構,如 字元串(strings), 散列(hashes), 清單(lists), 集合(sets), 有序集合(sorted sets) 與範圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢。 Redis 内置了 複制(replication),LUA腳本(Lua scripting), LRU驅動事件(LRU eviction),事務(transactions) 和不同級别的 磁盤持久化(persistence), 并通過 Redis哨兵(Sentinel)和自動 分區(Cluster)提供高可用性(high availability)。
和Memcached類似,它支援存儲的value類型相對更多,包括string(字元串)、list(連結清單)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。
這些資料類型都支援push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。
在此基礎上,Redis支援各種不同方式的排序。
與memcached一樣,為了保證效率,資料都是緩存在記憶體中。
差別的是Redis會周期性的把更新的資料寫入磁盤或者把修改操作寫入追加的記錄檔案。
并且在此基礎上實作了master-slave(主從)同步。
Redis應用場景
配合關系型資料庫做高速緩存
高頻次,熱門通路的資料,降低資料庫IO
分布式架構,做session共享

多樣的資料結構存儲持久化資料
Redis安裝
1、安裝 gcc 編譯器
# 安裝 C 語言的編譯環境
yum install centos-release-scl scl-utils-build
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
# 測試 gcc版本
gcc --version
2、下載下傳并安裝 Redis
Redis官方網站:http://redis.io
Redis中文官方網站:http://redis.cn/
1、官網下載下傳 redis-6.2.1.tar.gz 後放 /opt 目錄
2、解壓安裝 redis-6.2.1.tar.gz
# 解壓指令:
tar -zxvf redis-6.2.1.tar.gz
# 解壓完成後進入目錄:
cd redis-6.2.1
# 在redis-6.2.1目錄下再次執行make指令(隻是編譯好)
make install
如果沒有準備好C語言編譯環境,make 會報錯—Jemalloc/jemalloc.h:沒有那個檔案
# 解決方案:執行指令make distclean後,在redis-6.2.1目錄下再次執行make install指令(隻是編譯好)
3、安裝目錄:/usr/local/bin
檢視預設安裝目錄:
redis-benchmark:性能測試工具,可以在自己本子運作,看看自己本子性能如何
redis-check-aof:修複有問題的AOF檔案,rdb和aof後面講
redis-check-dump:修複有問題的dump.rdb檔案
redis-sentinel:Redis叢集使用
redis-server:Redis伺服器啟動指令
redis-cli:用戶端,操作入口
4、啟動/關閉 redis server
- 前台啟動:
# 前台啟動(不推薦),指令行視窗不能關閉,否則伺服器停止 redis -server
-
背景啟動:
1、備份redis.conf
# 複制一份 redis.conf 到其他目錄 cp /opt/redis-3.2.5/redis.conf /myredis
2、修改redis.conf(128行):背景啟動設定daemonize no改成yes
3、Redis 啟動
4、測試驗證# 啟動 redis redis-server /myredis/redis.conf
5、Redis關閉# 通路 redis redis-cli # 端口通路 redis redis-cli -p6379 [[email protected] bin]# redis-cli 127.0.0.1: 6379> 127.0.0.1: 6379> ping PONG
# 單執行個體關閉: redis-cli shutdown # 指定端口關閉: redis-cli -p 6379 shutdown # 也可以進入終端後再關閉 redis-server /myredis/redis.conf shutdown
Redis是單線程+多路IO複用技術
端口6379從何而來:
預設16個資料庫,類似數組下标從0開始,初始預設使用0号庫
使用指令 select <dbid> 來切換資料庫。如: select 8
統一密碼管理,所有庫同樣密碼。
dbsize :檢視目前資料庫的key的數量
flushdb :清空目前庫
flushall :通殺全部庫
Redis是單線程+多路IO複用技術。
多路複用是指使用一個線程來檢查多個檔案描述符(Socket)的就緒狀态,比如調用select和poll函數,傳入多個檔案描述符,如果有一個檔案描述符就緒,則傳回,否則阻塞直到逾時。得到就緒狀态後進行真正的操作可以在同一個線程裡執行,也可以啟動線程執行(比如使用線程池)
串行 vs 多線程+鎖(memcached) vs 單線程+多路IO複用(Redis):
(與Memcache三點不同: 支援多資料類型,支援持久化,單線程+多路IO複用)