日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis介绍及保持session会话

發(fā)布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis介绍及保持session会话 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載自:http://blog.51cto.com/cherryliang/1944361

Redis介紹

●redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實現(xiàn)master-slave(主從)同步。

●redis是一個高性能的key-value數(shù)據(jù)庫。redis的出現(xiàn),很大程度補償了memcached這類key-value存儲的不足,在部分場合可以對關(guān)系數(shù)據(jù)庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP。JavaScript,Perl,Object-C,Python,Ruby等客戶端,使用很方便。

●簡單比較Redis與Memcached的區(qū)別:

1、Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。

2、Redis支持數(shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

3、Redis支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時候可以再次加載進行使用。

●在redis中,并不是所有的數(shù)據(jù)都一直存儲在內(nèi)存中,這是和Memcached相比一個最大的區(qū)別。Redis只會緩存所有的key信息,如果Redis發(fā)現(xiàn)內(nèi)存的使用量超過了某一個閥值,將觸發(fā)swap的操作,Redis根據(jù)“swappability = age*log(size_in_memory)”計算出哪些key對應(yīng)的value需要的swap到磁盤,然后將這些key對應(yīng)的value持久化的磁盤中,同時在內(nèi)存中清除。這種特性使得Redis可以保持超過其他機器本身內(nèi)存大小的數(shù)據(jù)。當然,機器本身的內(nèi)存要能夠保持所有的key,因為這些數(shù)據(jù)是不會進行swap操作的

●當從Redis中讀取數(shù)據(jù)的時候,如果讀取的key對應(yīng)的value不在內(nèi)存中,那么Redis就需要從swap文件中加載相應(yīng)數(shù)據(jù),然后再返回給請求方

█如何保持session會話

●目前,為了方便web能適應(yīng)大規(guī)模的訪問,需要實現(xiàn)應(yīng)用的集群部署。集群最有效的方案就是負載均衡,而實現(xiàn)負載均衡用戶每一個請求都有可能被分配到不固定的服務(wù)器上,這樣我們首先要解決session的統(tǒng)一來保證無論用戶的請求被轉(zhuǎn)發(fā)到那個服務(wù)器上都能保證用戶的正常使用,即需要實現(xiàn)session的共享機制。

●在集群系統(tǒng)下實現(xiàn)session統(tǒng)一有以下幾種方案:

1、請求精確定位:sessionsticky,例如基于訪問ip的hash策略,即當前用戶的請求都集中定位到一臺服務(wù)器中,這樣單臺服務(wù)器保存了用戶的session登錄信息,如果宕機,則等同于單點故障,會丟失,會話不復(fù)制。

2、session復(fù)制共享:sessionreplication,如Tomcat自帶session共享,主要是指集群環(huán)境下,多臺應(yīng)用服務(wù)器之間同步session,使session保持一致,對外透明。如果其中一臺服務(wù)器發(fā)生故障,根據(jù)負載均衡的原理,調(diào)度器會遍歷尋找可用節(jié)點,分發(fā)請求,由于session已同步,故能保證用戶的session信息不會丟失,會話復(fù)制。

★上述方案的不足之處:

①必須在同一種中間件完成(如:Tomcat-Tomcat之間)

②session復(fù)制帶來的性能損失會快速增加,特別是當session中保存了較大的對象,而且對象變化較快時,性能下降更加顯著,會消耗系統(tǒng)性能。這種特性使得web應(yīng)用的水平擴展受到了限制。

③session內(nèi)容通過廣播同步給成員,會造成網(wǎng)絡(luò)流量瓶頸,即便是內(nèi)網(wǎng)瓶頸。在大并發(fā)下表現(xiàn)并不好

3、基于cache DB緩存的session共享

即使用cache DB存取session信息,應(yīng)用服務(wù)器接受請求將session信息保存在cache DB中,當應(yīng)用服務(wù)器發(fā)生故障時,調(diào)度器會遍歷尋找可用節(jié)點,分發(fā)請求,當應(yīng)用服務(wù)器發(fā)現(xiàn)session不在本機內(nèi)存時,則去cache DB中查找,如果找到則復(fù)制到本機,這樣實現(xiàn)session共享和高可用

轉(zhuǎn)載于:https://www.cnblogs.com/cxrz/p/8529592.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的redis介绍及保持session会话的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。