1. 程式人生 > >1.1 Redis

1.1 Redis

分散式儲存

  • NoSQL

NoSQL,泛指非關係型的資料庫,全稱Not Only SQL,意即“不僅僅是SQL”。

NoSQL資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。在過去幾年,關係型資料庫一直是資料持久化的唯一選擇,資料工作者考慮的也只是在這些傳統資料庫中做篩選,比如SQL Server、Oracle或者是MySQL。

網路應用程式的規模日漸變大,我們需要儲存更多的資料、服務更多的使用者以及需求更多的計算能力。但是關係型資料庫儲存結構是面向關係的的,而應用卻是面向物件的,所以在每次儲存或者查詢資料時,我們都需要做轉換。為了應對這種情形,我們需要不停的擴充套件。擴充套件分為兩類:一種是縱向擴充套件,即增強單臺主機的效能;另一種是橫向擴充套件,即購買更多的節點組成叢集。在巨大的規模下,縱向擴充套件發揮的作用並不是很大。因為單機器效能提升需要鉅額的開銷並且有著效能的上限。鑑於這種情況,我們需要新的資料庫,因為關係資料庫並不能很好的執行在叢集上。不錯你也可能會去搭建關係資料庫叢集,但是他們使用的是共享儲存,這並不是我們想要的型別。

NoSQL資料庫在以下的這幾種情況下比較適用: 

    資料模型比較簡單
    需要靈活性更強的IT系統
    對資料庫效能要求較高
    不需要高度的資料一致性
    對於給定key,比較容易映射覆雜值的環境

鍵值(Key-Value)資料庫

鍵值資料庫就像在傳統語言中使用的雜湊表。你可以通過key來新增、查詢或者刪除資料,鑑於使用主鍵訪問,所以會獲得不錯的效能及擴充套件性。 鍵值資料庫查詢速度快,資料無結構化,通常只被當作字串或者二進位制資料。

適用的場景 
    儲存使用者資訊,比如會話、配置檔案、引數、購物車等等。這些資訊一般都和 ID(鍵)掛鉤,這種情景下鍵值資料庫是個很好的選擇。

不適用場景 
    取代通過鍵查詢,而是通過值來查詢。Key-Value資料庫中根本沒有通過值查詢的途徑。 
    需要儲存資料之間的關係。在Key-Value資料庫中不能通過兩個或以上的鍵來關聯資料。 
    事務的支援。在Key-Value資料庫中故障產生時不可以進行回滾。

產品:Riak、Redis、Memcached、Amazon’s Dynamo、Project Voldemort

面向文件(Document-Oriented)資料庫

面向文件資料庫會將資料以文件的形式儲存。每個文件都是自包含的資料單元,是一系列資料項的集合。每個資料項都有一個名稱與對應的值,值既可以是簡單的資料型別,如字串、數字和日期等;也可以是複雜的型別,如有序列表和關聯物件。資料儲存的最小單位是文件,同一個表中儲存的文件屬性可以是不同的,資料可以使用XML、JSON或者JSONB等多種形式儲存。

資料結構要求不嚴格,表結構可變,不需要像關係型資料庫一樣需要預先定義表結構,但是查詢效能不高,而且缺乏統一的查詢語法。

適用的場景 
    日誌。企業環境下,每個應用程式都有不同的日誌資訊。Document-Oriented資料庫並沒有固定的模式,所以我們可以使用它儲存不同的資訊。 
    分析。鑑於它的弱模式結構,不改變模式下就可以儲存不同的度量方法及新增新的度量。

不適用場景 
    在不同的文件上新增事務。Document-Oriented資料庫並不支援文件間的事務,如果對這方面有需求則不應該選用這個解決方案。

產品:MongoDB、CouchDB、RavenDB、Terrastore 、OrientDB

列儲存(Wide Column Store/Column-Family)資料庫

列儲存資料庫將資料儲存在列族(column family)中,一個列族儲存經常被一起查詢的相關資料。舉個例子,如果我們有一個Person類,我們通常會一起查詢他們的姓名和年齡而不是薪資。這種情況下,姓名和年齡就會被放入一個列族中,而薪資則在另一個列族中。

列儲存查詢速度快,可擴充套件性強,更容易進行分散式擴充套件,適用於分散式的檔案系統。

適用的場景 
    日誌。因為我們可以將資料儲存在不同的列中,每個應用程式可以將資訊寫入自己的列族中。 
    部落格平臺。我們儲存每個資訊到不同的列族中。舉個例子,標籤可以儲存在一個,類別可以在一個,而文章則在另一個。

不適用場景 
    如果我們需要ACID事務。Vassandra就不支援事務。 
    原型設計。如果我們分析Cassandra的資料結構,我們就會發現結構是基於我們期望的資料查詢方式而定。在模型設計之初,我們根本不可能去預測它的查詢方式,而一旦查詢方式改變,我們就必須重新設計列族。

產品:Cassandra、HBase

圖(Graph-Oriented)資料庫

圖資料庫允許我們將資料以圖的方式儲存。實體會被作為頂點,而實體之間的關係則會被作為邊。比如我們有三個實體,Steve Jobs、Apple和Next,則會有兩個“Founded by”的邊將Apple和Next連線到Steve Jobs。

主要用於社交網路,推薦系統等。專注於構建關係圖譜。

適用的場景 
    在一些關係性強的資料中 
    推薦引擎。如果我們將資料以圖的形式表現,那麼將會非常有益於推薦的制定

不適用場景 
    不適合的資料模型。圖資料庫的適用範圍很小,因為很少有操作涉及到整個圖。

產品:Neo4J、Infinite Graph、OrientDB

  • 分散式系統特性

2000年,Eric Brewer教授在PODC的研討會上提出了一個猜想:一致性、可用性和分割槽容錯性三者無法在分散式系統中被同時滿足,並且最多隻能滿足其中兩個

    C(一致性):所有的節點上的資料時刻保持同步
    A(可用性):每個請求都能接受到一個響應,無論響應成功或失敗
    P(分割槽容錯):系統應該能持續提供服務,即使系統內部有訊息丟失

高可用、資料一致是很多系統設計的目標,但是分割槽又是不可避免的事情:

    CA without P:如果不要求P(不允許分割槽),則C(強一致性)和A(可用性)是可以保證的。但其實分割槽不是你想不想的問題,而是始終會存在,因此CA的系統更多的是允許分割槽後各子系統依然保持CA。

    CP without A:如果不要求A(可用),相當於每個請求都需要在Server之間強一致,而P(分割槽)會導致同步時間無限延長,如此CP也是可以保證的。很多傳統的資料庫分散式事務都屬於這種模式。

    AP wihtout C:要高可用並允許分割槽,則需放棄一致性。一旦分割槽發生,節點之間可能會失去聯絡,為了高可用,每個節點只能用本地資料提供服務,而這樣會導致全域性資料的不一致性。現在眾多的NoSQL都屬於此類。

BASE:BA,S,E,基於CAP演化而來

    BA:Basically Available,基本可用
    S:Soft state,軟狀態/柔性事務,即狀態可以在一個時間視窗內是不同步的
    E:Eventually consistency,最終一致性

Redis

Redis 是一個高效能的 key-value 資料庫。 redis的出現,很大程度補償了 memcached 這類 key/value 儲存的不足,在部分場合可以對關係資料庫起到很好的補充作用。它提供了 Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang 等客戶端,使用很方便。 

  • Redis特性

Redis 是一款使用 C 語言編寫的開源 Key-Value 資料庫,並具有以下特性:

    使用記憶體儲存
    資料結構儲存
    支援網路互動
    也可以持久化

所以可以用作為:資料庫、快取、訊息佇列

Redis支援多種資料結構:字串、列表(陣列)、hashes(關聯陣列)、集合、有序集合、bitmaps、hyperloglogs、空間索引

Redis 支援主從同步。資料可以從主伺服器向任意數量的從伺服器上同步,從伺服器可以是關聯其他從伺服器的主伺服器。這使得 Redis 可執行單層樹複製。存檔可以有意無意的對資料進行寫操作。由於完全實現了釋出/訂閱機制,使得從資料庫在任何地方同步樹時,可訂閱一個頻道並接收主伺服器完整的訊息釋出記錄。同步對讀取操作的可擴充套件性和資料冗餘很有幫助。

  • Redis安裝

軟體包在 epel 倉庫中

[[email protected] ~]# yum install redis

檢視 Redis 的主配置檔案 /etc/redis.conf 中的配置段

[[email protected] ~]# cat /etc/redis.conf | grep "^###"
################################## INCLUDES ###################################
################################## NETWORK ####################################網路配置
################################# GENERAL #####################################通用配置
################################ SNAPSHOTTING  ################################快照配置
################################# REPLICATION #################################主從複製
################################## SECURITY ###################################安全認證
################################### LIMITS ####################################資源限制
############################## APPEND ONLY MODE ###############################AOF持久
################################ LUA SCRIPTING  ###############################LUA監本
################################ REDIS CLUSTER  ###############################叢集配置
################################## SLOW LOG ###################################慢日誌
################################ LATENCY MONITOR ##############################延遲監控
############################# EVENT NOTIFICATION ##############################事件通知
############################### ADVANCED CONFIG ###############################高階配置

啟動 Redis(啟動前注意修改監聽地址)

Redis-cli

使用 redis-cli 開啟 redis 客戶端

    語法:redis-cli [選項]

選項:

-h  指定主機IP地址
-p  指定埠
-a  密碼
-n  資料庫編號

  • @string

SET key value [EX seconds] [PX milliseconds] [NX|XX]   設定鍵值對
    EX  設定有效時間,等同於 SETEX
    NX  僅當鍵不存在時才設定,等同於SETNX
    XX  僅當鍵存在時才設定

GET key  讀取指定鍵的值

INCR key  給指定鍵的值加1
DECR key  給指定鍵的值減1

INCRBY key increment  按指定整數值加鍵的值
DECRBY key increment  按指定整數值減鍵的值

MGET key [key...]  讀取多個鍵的值
MSET key value [key value ...]  設定多個鍵的值

  • list

在 Redis 中認為佇列左側為首部,右側為尾部

LPUSH key value [value ...]  由隊首向列表中新增值
RPUSH key value [value ...]  由隊尾向列表中新增值

LPOP key  從指定列表的隊首取走一個值
RPOP key  從指定列表的隊尾取走一個值

LPUSHX key value  僅當列表存在時向其隊首新增一個值
RPUSHX key value  僅當列表存在時向其隊尾新增一個值

BLPOP key [key ...] timeout  從指定列表的隊首取走一個值,若沒有則在超時時間內等待至有值並取走
BRPOP key [key ...] timeout  從指定列表的隊尾取走一個值,若沒有則在超時時間內等待至有值並取走

LRANGE key start stop  從列表中讀取指定範圍的元素

LINDEX key index  從列表中讀取指定元素

LSET key index value  設定列表中指定下標元素的值

LLEN key  獲取列表長度

  • hash

HSET key field value  設定指定字典中的鍵值對
HMSET key field value [field value ...]  設定指定字典中的多個鍵值對

HGET key field  獲取指定字典中鍵的值
HMGET key field [field ...]  獲取指定字典中多個鍵的值
HGETALL key  獲取指定字典中的所有鍵值對

HDEL key field [field ...]  刪除字典中的鍵值對

HEXISTS key field  確定字典中是否存在指定鍵

HINCRBY key field increment  遞增字典中指定一個鍵的值
HINCRBYFLOAT key field increment  遞增字典中指定一個鍵的浮點值

HKEYS key  獲取字典中的所有鍵
HVALS key  獲取字典中的所有值

HSTRLEN key field  獲取字典中指定鍵值得長度

  • set

SADD key member [member ...]  向集合中新增元素

SCARD key  獲取集合中的元素數量

SISMEMBER key member  確定集合中是否存在指定元素

SMEMBERS key  列出集合中的所有元素

SMOVE source destination member  移動指定元素由源集合到目標集合

SPOP key [count]  隨機取走指定數量的元素
SRANDMEMBER key [count]  隨機讀取指定數量的元素

SREM key member [member ...]  從集合中刪除元素

SUNION key [key ...]  求集合之間的並集
SUNIONSTORE destination key [key ...]  求集合之間的並集之後儲存在目標集合中
SDIFF key [key ...]  由左至右求集合之間的差集
SDIFFSTORE destination key [key ...]  求集合之間的差集之後儲存在目標集合中
SINTER key [key ...]  求集合之間的交集
SINTERSTORE destination key [key ...]  求集合之間的交集之後儲存在目標集合中

  • pubsub

PSUBSCRIBE pattern [pattern ...]  監聽釋出到指定模式匹配的頻道的訊息
SUBSCRIBE channel [channel ...]  監聽指定頻道的訊息

PUBLISH channel message  釋出訊息到指定頻道

PUNSUBSCRIBE [pattern [pattern ...]]  停止監聽指定模式匹配的頻道
UNSUBSCRIBE [channel [channel ...]]  體制監聽指定頻道

其他資料結構使用 help @資料結構 即可檢視詳細幫助

  • 連線設定

AUTH password  進行密碼認證
ECHO message  列印指定字串
PING [message]  測試連線性
SELECT index  切換資料庫
QUIT  退出

  • server

CLIENT SETNAME connection-name  設定當前節點名稱
CLIENT GETNAME  獲取當前節點名稱
CLIENT LIST  獲取連線當前節點所有主機的資訊
CLIENT KILL [ip:port] [ID client-id] [TYPE normal|master|slave|pubsub] [ADDR ip:port] [SKIPME yes/no]  殺掉一個連線
CLIENT PAUSE timeout  暫停所有客戶端的連線
CLIENT REPLY ON|OFF|SKIP  顯示伺服器回覆

CONFIG GET parameter  獲取指定配置項的值
CONFIG SET parameter  設定指定配置項的值
CONFIG REWRITE  將命令列中的配置寫入配置檔案

FLUSHDB  刪除當前所在庫
FLUSHALL  刪除所有資料庫

INFO [section]  檢視當前主機的狀態

  • Redis配置

通用配置

################################# GENERAL #####################################
daemonize no    #是否執行為後臺程序,no時執行在systemd上
supervised no   #不受其他任何管理程式控制
pidfile /var/run/redis_6379.pid   #守護程序PID檔案
loglevel notice     #日誌裝置
logfile /var/log/redis/redis.log  #日誌檔案
databases 16   #資料庫個數

網路配置

################################## NETWORK #####################################
bind 0.0.0.0   #監聽IP
protected-mode yes  #保護模式,當沒有定義bind且沒有設定密碼時開啟,開啟後只能在本地登入redis
port 6379   #監聽埠
tcp-backlog 511  #後援佇列
# unixsocket /tmp/redis.sock  #使用套接字檔案進行本機通訊
# unixsocketperm 700          #套接字檔案許可權
timeout 0  #超時時間,0為永不超時
tcp-keepalive 300   #TCP超時時長

安全配置

################################## SECURITY ###################################
requirepass linux   #設定使用密碼登入
rename-command FLUSHDB "b840fc02d524045429941cc15f59e41cb7be6c52"  #改變操作命令。不建議在AOF或Replication環境中用

資源限制

################################### LIMITS ####################################
maxclients 10000  #最大連線數
maxmemory 536870912  #最大記憶體使用空間,位元組
zmaxmemory-policy noeviction  #淘汰策略
maxmemory-samples 5   #取樣範圍,10為無限接近真實,5為推薦使用

淘汰策略

    volatile-lru  基於有效時間進行LRU演算法淘汰
    allkeys-lru  基於所有鍵進行LRU演算法淘汰
    volatile-random  基於有效時間隨機淘汰
    allkeys-random  基於所有鍵隨機淘汰
    volatile-ttl  基於有效時間剩餘淘汰
    noeviction  不淘汰任何鍵,沒空間後禁止寫操作

慢日誌

################################## SLOW LOG ###################################
slowlog-log-slower-than 10000   #超過多久的訪問被記錄,微秒
slowlog-max-len 128   #記錄多少條日誌

高階配置

############################### ADVANCED CONFIG ###############################
hash-max-ziplist-entries 512  #一個字典中最多有多少個鍵
hash-max-ziplist-value 64     #字典中鍵的值的大小
list-max-ziplist-size -2      #一個列表中鍵值的大小,正數為鍵,負數為值
list-compress-depth 0         #列表壓縮強度
set-max-intset-entries 512    #一個集合最大佔多少空間
zset-max-ziplist-entries 128  #一個集合中最多有多少個元素
zset-max-ziplist-value 64     #每個元素最大瞻多少空間
hll-sparse-max-bytes 3000 
activerehashing yes
client-output-buffer-limit normal 0 0 0  #普通客戶端的緩衝池
client-output-buffer-limit slave 256mb 64mb 60  #從伺服器客戶端
client-output-buffer-limit pubsub 32mb 8mb 60   #訊息佇列客戶端
# 硬限制  軟限制  超限制時間
hz 10
aof-rewrite-incremental-fsync yes
  • Redis持久化

RDB 方式進行持久化:將 Redis 中的所有資料按二進位制的格式直接快照進 rdb 檔案中

優點:使用單獨子程序來進行持久化,主程序不會進行任何IO操作,保證了redis的高效能
          且執行頻率比 AOF 低,而且 rdb 檔案中直接儲存的是 key-values 的二進位制形式,對於恢復資料也快
缺點:RDB是間隔一段時間進行持久化,如果持久化之間redis發生故障,會發生資料丟失。所以這種方式更適合資料要求不嚴謹的時候

################################ SNAPSHOTTING  ################################
save 900 1           #當900秒內發生1次修改則會快照
save 300 10          #當300秒內發生10次修改則會快照
save 60 10000        #當60秒內發生10000次修改則會快照
stop-writes-on-bgsave-error yes  #當快照時出現錯誤,是否需要停止redis
rdbcompression yes   #快照完是否壓縮
rdbchecksum yes      #每次快照時是否進行校驗
dbfilename dump.rdb  #rdb檔名
dir /var/lib/redis   #rdb檔案存放路徑

    同時,也可以使用 SVAE 或者 BGSAVE 來手動執行快照
    注意:SAVE 命令將會使用主程序進行操作,阻塞其他請求;而 BGSAVE 則使用獨立的程序進行快照,並不會阻塞主程序

AOF(Append-only file) 方式進行持久化:將對資料的每一次修改操作追加至 aof 檔案中,且 Redis 重啟時會優先讀取 aof 檔案進行恢復

優點:可以保持更高的資料完整性,如果設定追加file的時間是1s,如果redis發生故障,最多會丟失1s的資料;且如果日誌寫入不完整支援redis-check-aof來進行日誌修復;AOF檔案沒被rewrite之前(檔案過大時會對命令進行合併重寫),可以刪除其中的某些命令(比如誤操作的flushall)
缺點:效能較低(每一條修改操作都要追加到aof檔案,執行頻率較RDB要高,而且aof檔案中儲存的是命令,對於恢復資料來講需要逐行執行命令,所以恢復慢)

############################## APPEND ONLY MODE ###############################
appendonly no   #預設並不啟動
appendfilename "appendonly.aof"  #aof檔名
appendfsync everysec   #每秒呼叫一次fsync
no-appendfsync-on-rewrite no      #執行RDB時是否暫緩AOF操作
auto-aof-rewrite-percentage 100   #當新新增的操作例項個數與上一次rewrite後的例項個數相等時
auto-aof-rewrite-min-size 64mb    #aof檔案容量指定大小才會觸發rewrite
aof-load-truncated yes            #載入aof檔案時是否修剪,當有錯誤記錄時會嘗試讀取日誌糾正

    使用 BGREWRITEAOF 命令手動執行 rewrite 操作
    注意:每當 Redis 執行 rewrite 操作時,會開啟一個子程序,並將新接收到的命令存放在緩衝區內,而 rewrite 會新鍵一個空檔案將當前 Redis 資料庫中的操作例項儲存下來。當 rewrite 子程序向 Redis 傳送退出訊號後,Redis 會將緩衝區內的命令新增進新的 aof 檔案。

相關推薦

ubuntu 16.04.1 LTS redis安裝配置

star ins redis-cli -s download root per edi down 編譯安裝:apt-get updateapt-get install build-essential tclwget http://download.redis.io/redi

從零開始搭建系統1.5——Redis安裝及配置

系統 htm div .com blank target enc 1.5 www. 從零開始搭建系統1.5——Redis安裝及配置從零開始搭建系統1.5——Redis安裝及配置

1.22 redis集群介紹21.23/21.24 redis集群搭建配置21.25 redis集群

當前 集群 不同 redis配置文件 安裝ruby source raw ruby 一個 21.22 redis集群介紹多個redis節點網絡互聯,數據共享所有的節點都是一主一從(可以是多個從),其中從不提供服務,僅作為備用不支持同時處理多個鍵(如mset/mget),因為

redis學習1--初識redisredis的安裝,啟動。。。

redis 3.0 啟動 一個 工作 持久 集群 端口號 daemonize Linux 環境下 下載redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz 解壓 tar -zxvf redis-3.0

Redis學習總結(1)——Redis記憶體資料庫詳細教程

1.Redis是什麼 2.redis的作者何許人也 3.誰在使用redis 4.學會安裝redis 5.學會啟動redis 6.使用redis客戶端 7.redis資料結構 – 簡介 8.redis資料結構 – strings 9.redis資料結構 – lists 10.redis

redis叢集與分片(1)-redis伺服器叢集、客戶端分片 redis叢集與分片(1)-redis伺服器叢集、客戶端分片

redis叢集與分片(1)-redis伺服器叢集、客戶端分片   下面是來自知乎大神的一段說明,個人覺得非常清晰,就收藏了。 為什麼叢集? 通常,為了提高網站響應速度,總是把熱點資料儲存在記憶體中而不是直接從後端 資料庫中

redis集群與分片(1)-redis服務器集群、客戶端分片

服務器集群 包含 工作 direct 數據丟失 網站 這一 線性 取模 下面是來自知乎大神的一段說明,個人覺得非常清晰,就收藏了。 為什麽集群? 通常,為了提高網站響應速度,總是把熱點數據保存在內存中而不是直接從後端數據庫中讀取。Redis是一個很好的Cache工具

資料庫之redis篇(1)—— redis資料庫安裝,簡單使用

簡介 reids,由Salvatore Sanfilippo寫的一個高效能的key-value資料庫,並且它是非關係型資料庫,也就是沒有像mysql那樣多表連結操作,並且它是是完全開源免費的,遵守BSD協議。   reids 與其他 key - value 快取產品有以下三個特點: r

數據庫之redis篇(1)—— redis數據庫安裝,簡單使用

容器 keys val entos 隨機 數據結構 ubunt 基本 hal 簡介 reids,由Salvatore Sanfilippo寫的一個高性能的key-value數據庫,並且它是非關系型數據庫,也就是沒有像mysql那樣多表鏈接操作,並且它是是完全開源免費的,遵

Win10下Celery4.2.1基於redis的部署與錯誤

Celery是一個分散式非同步任務的神器,由Python開發但是其通訊協議可以支援其它語言。它還可以設定定時任務,設定多個任務佇列並路由任務到指定的佇列;同時還提供了執行時的一些監控和管理介面。 安裝 安裝python3.7(官網下載直接安裝) 安裝celery庫(pip ins

Atitit redis使用場合總結 使用場景 目錄 1.1. 3. Session 儲存 1 1、 配置資料查詢 1 2. 排行榜應用,取TOP N操作 1 1.2. 1、查詢最

Atitit redis使用場合總結 使用場景          目錄 1.1. 3. Session 儲存 1 1、 配置資料查詢 1 2. 排行榜應用,取TOP N操作 1 1.2.     1

1.2 Redis的命令

1.2 Redis的命令 1、redis的五種資料型別 1.1、redis的key 1.2、redis的value支援五種資料型別 2、redis的命令 2.1、對Keys的操作命令 2.1.1、

從0到1構建redis

引言 之前研究了下redis的協議、持久化策略以及單執行緒模型,突然覺得和java很搭配。   目的 純個人愛好,練手。   特徵 目前已相容大多數redis原生協議 set get. lpush rpush lrange

Redis學習筆記(1)—— Redis簡介

一、NoSQL概述 1.1 什麼是NoSQL   NoSQL(NoSQL = Not Only SQL),意指“不僅僅是SQL”,是一項全新的資料庫理念,泛指非關係型的資料庫。 1.2 為什麼需要NoSQL   隨著網際網路web2.0網站的興起,非關係型的資料庫成了一個極其熱門的新領域,非關係型資料

Redis學習之路(1)----初識Redis

一、什麼是Redis Redis官網上的介紹是這樣的: Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message

企業級Redis開發運維從入門到實踐 (1)—Redis 初識

Redis是什麼 Redis是一個開源、基於鍵值的儲存服務系統,具有多種資料結構,同時具有高效能、功能豐富(即高效能Key-Value、多種資料結構、豐富的功能、高可用分散式支援的資料儲存服務)的特性

學習yijun zhang 老師的商品秒殺專案所得(1)——使用Redis做快取優化的簡單實現

主要使用的功能: 1.基於java的redis工具——Jedis 2.JDK本身提供的序列化方式——實現Serializable 3.實現序列化要用到的IO流——ByteArrayInputStream,ByteArrayOutputStream,ObjectI

Redis 學習筆記(1)—— Redis安裝,String 型別測試

1 Redis 介紹 1.1 概述 Redis是一個開源,先進的key-value儲存,並用於構建高效能,可擴充套件的應用程式的完美解決方案。 Redis資料庫完全在記憶體中,使用磁碟僅用於永續性。 相比許多鍵值資料儲存,Redis擁有一套較為豐富的資料型別。

Redis學習-1 搭建Redis環境並簡單測試

2.Redis 支援 32 位和 64 位。這個需要根據你係統平臺的實際情況選擇,這裡我們下載 Redis-x64-xxx.zip壓縮包,然後解壓到D:\Program Files\,並將資料夾重新命名為redis 3.開啟一個 cmd 視窗 使用 cd 命令切換目

thinkphp5.1+ 使用 Redis 快取

修改 config/cache.php 將其配置成多個快取型別,示例 <?php // +----------------------------------------------------