Redis數據庫 【總結筆記】

一、NoSql(非關系型數據庫)

NoSQL:NoSQL = Not Only SQL 非關系型數據庫
? NoSQL,泛指非關系型的數據庫。隨著互聯網web2.0網站的興起,傳統的關系數據庫在應付web2.0網站,特別是超大規模和高并發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的數據庫則由于其本身的特點得到了非常迅速的發展。NoSQL數據庫的產生就是為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題。

1.1 優點

  • 高可擴展性
  • 分布式計算
  • 低成本
  • 架構的靈活性,半結構化數據
  • 沒有復雜的關系

1.2 缺點

  • 沒有標準化
  • 有限的查詢功能(到目前為止)

1.3 分類

類型代表特點
列存儲Hbase、Cassandra、Hypertable顧名思義,是按列存儲數據的。最大的特點是方便存儲結構化和半結構化數據,方便做數據壓縮,對針對某一列或者某幾列的查詢有非常大的IO優勢。
文檔存儲MongoDB、CouchDB文檔存儲一般用類似json的格式存儲,存儲的內容是文檔型的。這樣也就有有機會對某些字段建立索引,實現關系數據庫的某些功能。
key-value存儲Berkeley DB、MemcacheDB、Redis可以通過key快速查詢到其value。一般來說,value可以是任何格式。
圖存儲Neo4J、FlockDB圖形關系的最佳存儲。使用傳統關系數據庫來解決的話性能低下,而且設計使用不方便。
對象存儲db4o、Versant通過類似面向對象語言的語法操作數據庫,通過對象的方式存取數據。
xml數據庫Berkeley DB XML、BaseX高效的存儲XML數據,并支持XML的內部查詢語法,比如XQuery,Xpath。

二、Redis與網站架構

2.1什么是Redis?

  • Remote Dictionary Server 縮寫 是個基于內存的網絡存儲系統

  • 豐富的數據結構(sets, sorted sets,hashes, list …)

  • 本質是key-value,但是與memcached不同的是,value的類型得到了擴展

    一個普通的問題列表需求

  • 問題本身的數據(標題,投票等等)

  • 問題的作者數據(另 張單獨的 張數據表,通過某個鍵值關聯)

  • 問題的標簽(本身單獨一張數據表,通過一個中間關系表與問題產生 對多的關系)

為啥不試試Redis

2.2 與sql比較

大大減少了查詢數量,提高了效率
redis的API更加人性化,再也不需要構建SQL語句,節省了SQL的解析時間

三、Redis

3.1簡介

Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-value數據庫。

Redis 與其他 key - value 緩存產品有以下三個特點:

  • Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
  • Redis不僅僅支持簡單的key-value string類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
  • Redis支持數據的備份,即master-slave模式的數據備份。

3.2 優勢

  • 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
  • 豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。
  • 原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全并后的原子性執行。
  • 豐富的特性 – Redis還支持通知, key過期等等特性。

3.3和其他的key-value存儲有什么不同

  • Redis有著更為復雜的數據結構并且提供對他們的原子性操作,這是一個不同于其他數據庫的進化路徑。Redis的數據類型都是基于基本數據結構的同時對程序員透明,無需進行額外的抽象。
  • Redis運行在內存中但是可以持久化到磁盤,所以在對不同數據集進行高速讀寫時需要權衡內存,因為數據量不能大于硬件內存。在內存數據庫方面的另一個優點是,相比在磁盤上相同的復雜的數據結構,在內存中操作起來非常簡單,這樣Redis可以做很多內部復雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,因為他們并不需要進行隨機訪問。

3.4 redis 為什么能夠持久化存儲 ?

因為 RDB 和 AOF

  • RDB [RDB 將數據庫的快照(snapshot)以二進制的方式保存到磁盤中。]

    在運行情況下, Redis 以數據結構的形式將數據維持在內存中, 為了讓這些數據在 Redis 重啟之后仍然可用, Redis 分別提供了 RDB 和 AOF 兩種持久化模式。

    在 Redis 運行時, RDB 程序將當前內存中的數據庫快照保存到磁盤文件中, 在 Redis 重啟動時, RDB 程序可以通過載入 RDB 文件來還原數據庫的狀態。

    RDB 功能最核心的是 rdbSave 和 rdbLoad 兩個函數, 前者用于生成 RDB 文件到磁盤, 而后者則用于將 RDB 文件中的數據重新載入到內存中:

    RDB 本質上是個文件 每隔一段時間 在redis配置文件中進行設置 將內存中的數據存入文件中 如果數據過大 也容易造成數據丟失


  • AOF [ 則以協議文本的方式,將所有對數據庫進行過寫入的命令(及其參數)記錄到 AOF 文件,以此達到記錄數據庫狀態的目的。]

AOF 將命令追加到文件中 將原有的內容替換掉 記錄到 AOF 文件, 以此達到記錄數據庫狀態的目的, 為了方便起見, 我們稱呼這種記錄過程為同步。


3.5 安裝redis

sudo apt-get install redis-server
安裝完成后,Redis服務器會自動啟動,我們檢查Redis服務器程序
ps -aux|grep redis
或者
netstat -nlt | grep 6379#看見 port 6379  就成功啟動了redis服務
文件名稱作用
redis-serverredis 服務端
redis-cliredis 客戶端
redis-benchmarkredis性能測試工具
redis-check-aofaof修復工具
redis-check-rdbrdb
redis-sentinel哨兵服務器 2.8版本之后才有

【redis-sentinel】監控你管理的作用來提高集群的高可用性

redis-cli客戶端使用方式:
redis-cli 
redis-server.exe redis.windows.conf
-p  #端口
-h  #主機
鏈接上  
redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>   #ping之后 pong來了就是成功了
離開客戶端請輸入quit服務管理
啟動/停止/重啟redis有三種方式
1) systemctl start/stop/restart  redis-server.service
2) service  redis-server start|restart|stop
3) cd /etc/init.d./redis-server  start/stop/restart

【redis的配置文件】

配置文件在/etc/redis/redis.conf

sudo vim /etc/redis/redis.conf
# 常用配置項
requirepass 你的密碼   # 服務器遠程連接密碼
bind 127.0.0.1     # 綁定ip
port 5379  # 指定端口
daemonize yes # 是否以守護進程執行,如果以守護進程執行,不會在命令行下阻塞
dbfilename dump.rdb   #數據文件
dir /var/lib/redis    #數據文件存儲路徑#如果指定了密碼,啟用客戶端時需要加上-a 密碼
redis-cli -a 密碼

四、redis數據類型

Redis支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

  • redis常用命令請參考:http://redis.cn/commands.html

4.1 string

是最簡單的類型,你可以理解為一個key 對應一個value。string 類型是二進制安全的。意思是redis 的string 可以包含任何數據,比如jpg 圖片或者序列化的對象。string類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。

  • 設置鍵

    命令:SET key value  #設置單鍵值對
    >set h1 100  #設置h1的值為100命令:mset key  value [key  value] #設置多個鍵值對
    >mset name '王寶強' age 30 gender '男'命令:setex   key seconds  value #設置鍵值及過期時間(秒單位)
    >setex  age 100 20 #設置年齡的值為20,過期時間100秒
    
  • 獲取鍵

    命令:get  key  #獲取單個鍵
    >get h1命令:mget key1 key2  key3  #獲取多個鍵
    >mget name age sex
    
  • 查看過期時間

    命令:ttl key
    >ttl a1 #查看a1的過期時間
    
  • 運算

    原來的值必須是數值字符串
    命令:incr key  #將對應的key 加1 
    命令:decr key  #將對應的key值減1
    命令:incrby  key  num   #將對應的key加指定值
    命令:decrby  key  num   #將對應的key的值減去指定值
    
  • 其它操作

    命令:append key  value  #追加值,redis中值都是字符串,追加就是字符拼接
    >append name 'hello'  #如果原來的值是tom,那么現在就是tomhello命令:strlen  key  #獲取值得長度
    

4.2 hash

Redis hash 是一個鍵值(key=>value)對集合。Redis hash是一個string類型的field和value的映射表,hash特別適合用于存儲對象。每個 hash 可以存儲 2的32次方 -1 鍵值對(40多億)。存儲形式:

key = {name:‘tom’,age: 18}

  • 設置值

    命令:hset  key  field   value  #設置key所指對象的指定屬性的值
    命令:hmset key  field   value  [field value] #設置key所指對象的多個屬性值
    命令:hsetnx  key  field  value  #當field字段不存在時 設置key所指對象的field屬性值hset person name '二狗子'
    hmset person age 20 sex '男'
    hsetnx person maried '未婚'
    
  • 獲取值

    命令: hget key field  #獲取key指定的對象的屬性值
    命令: hmget  key  field [field]  #獲取key指定對象的多個屬性值
    命令: hgetall key   #獲取key所指對象的所有屬性的名稱和值
    命令: hkeys   key   #獲取key所指對象的所有屬性名
    命令: hvals   key   #獲取key所指對象是的所有屬性值
    命令: hlen key      #獲取key所指對象的屬性個數
    
  • 其它操作

    命令:hincrby  key   field   increment  #為key所指對象的指定字段的整數值加上increment
    命令:hincrbyfloat  key  field  increment #為key所指對象的指定字段的實數值加上increment
    命令:hexists key  field  #判斷當前的字段是否存在在(在返回1 否則返回0)
    命令:hdel  key  field  [field] #刪除字段和值
    

4.3 list

redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。列表最多可存儲 2的32次方 - 1 元素 (4294967295, 每個列表可存儲40多億)。

常應用于:1、對數據量大的集合數據刪減 2、任務隊列

  • 添加數據

    命令:lpush  key   value [value]    #頭部插入數據
    命令:lpushx  key  value            #如果列表存在則在列表頭部插入數據
    命令:rpush  key  value  [value]    #在列表尾部添加數據
    命令:rpushx  key  value            #如果列表存在,則在尾部添加數據
    命令:linsert key  before|after  value  value  #在指定值前或后插入數據
    命令:lset  key  index  value       #設定指定索引元素的值
    注意:索引的值從左邊開始,向右增加,左邊第一個是0,從右邊向左索引編號為:-1 -2...
    
  • 獲取數據

    命令:lpop  key                #左側出隊并返回出隊元素
    命令:rpop  key                #右側出隊并返回出隊元素
    命令:lindex	key    index    #返回指定索引的值
    命令:lrange  key  start  end  #返回存儲列表中的指定范圍的元素[start,end]
    命令:lrem key count value     #從列表里移除前 count 次出現的值為 value 的元素count > 0: 從頭往尾移除值為 value 的元素。count < 0: 從尾往頭移除值為 value 的元素。count = 0: 移除所有值為 value 的元素。
    
  • 其它操作

    命令:llen  key  #獲取列表長度
    命令:ltrim  key  start  stop  #裁剪列表 保留start到stop之間的元素,其它都刪除ltrime  mylist  -3  -1  #從索引為-3到-2的保留, 以外的全部刪除
    

4.4 set 無序的集合

Redis的Set是string類型的無序集合,元素具有唯一性 不重復。集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。

常應用于:對兩個集合間的數據進行交集、并集、差集運算

  • 添加元素

    sadd  key  member [member]  #添加多個元素
    
  • 獲取元素

  smembers   key   #獲取集合中所有的元素scard    key     #返回集合元素的個數srandmember  key   [count]  #返回集合中隨機元素的值,可以返回count個
  • 其它操作

    spop   key [count]   #移除集合中隨機的count個元素,并返回
    srem  key  member1  [member2]  #移除集合中 一個或者 多個 成員
    sismember  key  member   #判斷元素是否在集合中  存在返回1  不在返回0
    
  • 集合操作

求多個集合的交集:  sinter  key  [key...]
求多個集合的差集 (注意比較順序):sdiff   key  [key...]
求 多個集合的并集:   sunion  key [key....]

4.5 zset 有序從大到小排序

Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員。不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重復。

常應用于:排行榜

  • 添加元素

zadd key score member [score member] #添加多個元素
zincrby key increment member #對指定的成員增加權重increment

  • 獲取元素

zrange key start end #返回指定范圍的元素
zcard key #返回元素的個數
zcount key min max #返回有序集合中權重在min和max之間的元素的個數
zscore key member #返回有序集合中 member(元素) 的權重(score)
zrange key start end withscores #返回當前key中 所有的權重(score)和元素(member)

4.6 數據庫切換

redis默認帶有16個數據庫,編號從0-15。進入redis后默認數據庫是0,可以使用select num進行切換
客戶端不顯示中文的處理:打開客戶端的時候添加參數:–raw
redis-cli --raw

4.7 其他

keys *  #查看所有的key
keys u* #查以u開始的key
keys  n???    查找以n為開頭長度為4個的key
keys  n      查找 包含 n 的所有的key支持的正則表達式:
- h?llo	  匹配第二位為任意的字符
- h*llo     匹配第二位為任意字符 0個 或多個
- h[ab]llo  匹配第二位為 a或者b的字符的key
- hello  匹配第二位除了e字符以外的任意的key
- h[a-z]llo 匹配第二位為a-z的小寫字母的keyexists key #判斷鍵是否存在
type  key   #查看key對應的value的類型
del   key   #刪除指定key
expire key 10  #設置過期時間,秒
persist  key   #移除key的過期時間
rename key newkey #修改key的名稱(如果新的key的名字存在 則會把存在的key的值 覆蓋掉)
randomkey  #隨機返回一個 key
move key  db  將鍵移動到指定庫flushdb  #清空當前庫所有key 
flushall #清空所有庫里的keyexit #退出redis客戶端
quit 退出客戶端查看服務器信息
info dbsize 當前庫中有多少key

五、redis備份和還原

redis支持持久化的方式有兩種:RDB和AOF

  • RDB備份

    • 查看備份目錄
    #1查看配置文件
    cd /etc/redis
    vim redis.conf# 當后臺進程執行save出錯時,停止redis的寫入操作。
    stop-writes-on-bgsave-error yes
    rdbcompression yes  # 將rdb文件進行壓縮
    rdbchecksum yes   # 對rdb文件進行校驗
    dbfilename dump.rdb  # rdb文件命名
    dir /var/lib/redis  # rdb文件備份存儲目錄#使用命令查看
    進入redis客戶端
    127.0.0.1:6379> config get dir
    1) "dir"
    2) "/var/lib/redis"  #備份目錄
    
    • 備份
      • 命令行下執行:redis-cli save 阻塞主進程
      • 命令行下執行:redis-cli bgsave 不阻塞主進程
      • 查看備份時間,命令行下執行 time redis-cli save
    • 還原
      • 只要將備份的dump.rdb文件覆蓋原來的文件就可以還原

六、主從復制

當數據量變得龐大的時候,讀寫分離還是很有必要的。同時避免一個redis服務宕機,導致應用宕機的情況,我們啟用sentinel(哨兵)服務,實現主從切換的功能。redis提供了一個master,多個slave的服務。

角色ip
master(主)10.20.100.186
slave(從)10.20.100.106
  • master主配置
sudo vim /etc/redis/redis.conf
#找到# bind 127.0.0.1 修改為
bind 127.0.0.1 10.20.100.186#找到# requirepass 將其修改為 這是修改的是服務器遠程連接密碼
requirepass 123
  • slave從配置
bind 127.0.0.1 10.20.100.106  #10.20.100.106從服務器網絡地址
daemonize yes    #是否是守護進程
slaveof 10.20.100.186 6379   #主服務器的ip和端口
masterauth 123    # 主服務器的密碼

重啟master和slave的服務,然后登錄從服務器,執行:

python@ubuntu:/etc/redis$ redis-cli -p 6380 -a 123
127.0.0.1:6380> info replication
# Replication
role:slave
master_host:10.20.100.186
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:1444
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455987.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455987.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455987.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于IP的H.264關鍵技術

一、 引言 H.264是ITU-T最新的視頻編碼標準&#xff0c;被稱作ISO/IEC14496-10或MPEG-4 AVC&#xff0c;是由運動圖像專家組(MPEG)和ITU的視頻編碼專家組共同開發的新產品。H.264分兩層結構&#xff0c;包括視頻編碼層和網絡適配層。視頻編碼層處理的是塊、宏塊和片的數據&…

“光伏進社區” 應及早謀劃布局

所謂“光伏進社區”就是全國城鄉居民家庭大批量的利用家庭光伏系統&#xff0c;甚至出現光伏的社區化聯網交換、合作等更深入的活動。雖然“光伏進社區”還有很長的路要走&#xff0c;但“光伏進社區”的各種經濟、技術、社會條件正越來越向有利方向發展。 城鄉居民集聚社區是光…

python中的裝飾器和抽象類

裝飾器和抽象類 裝飾器就是對函數或者方法或者類進行修飾 #第一步&#xff1a;創建一個普通函數 def laxi():print(噗哧噗哧噗哧噗哧&#xff5e;&#xff5e;&#xff5e;)#調用函數 laxi() laxi()#第二步&#xff1a;擴展函數的功能(不是裝飾器) #聲明一個擴展函數 def deco…

eigen庫安裝_OpenCV+Eigen上位機程序移植(七十一)

1、給硬盤分區現在小伙伴們對于給電腦硬盤分區想必比較頭疼&#xff0c;給電腦硬盤分區分為兩種情況&#xff0c;一是在安裝系統之前給系統硬盤分區&#xff0c;二是在安裝系統之后給硬盤分區&#xff0c;我們現在購買的品牌機和筆記本的用戶比較多&#xff0c;而且筆記本和品牌…

【實戰操作】使用FFmpeg將一個視頻文件中音頻合成到另一個視頻中 只需三秒

直接進入主題 主要參數&#xff1a; -i——設置輸入文件名。-f——設置輸出格式。-y——若輸出文件已存在時則覆蓋文件。-fs——超過指定的文件大小時則結束轉換。-t——指定輸出文件的持續時間&#xff0c;以秒為單位。-ss——從指定時間開始轉換&#xff0c;以秒為單位。-t從…

蘋果依舊強大 物聯網領域舉足輕重

近幾天科技界最火爆的話題就是蘋果和谷歌兩家公司&#xff0c;一是蘋果發布財報&#xff0c;二是谷歌人工智能圍棋戰勝歐洲冠軍以及谷歌母公司Alphabet或將超越蘋果&#xff0c;成為世界上市值最大的公司。而在我眼里&#xff0c;未來五年內依然屬于蘋果。回顧下蘋果公司公布的…

linux之SQL語句簡明教程---SUBSTRING

SQL 中的 substring 函數是用來抓出一個欄位資料中的當中一部分。這個函數的名稱在不同的資料庫中不全然一樣&#xff1a; MySQL: SUBSTR( ), SUBSTRING( )Oracle: SUBSTR( )SQL Server: SUBSTRING( )最經常使用到的方式例如以下 (在這里我們用 SUBSTR( ) 為例)&#xff1a; SU…

H.264/AVC技術進展及其務實發展策略思考

隨著NGN、3G及3G演進和NGBW等對視頻、多媒體業務與網絡應用的飛速發展需求&#xff0c;作為視頻業務及存儲應用核心技術的高效率 視頻數字壓縮編(譯碼)技術&#xff0c;愈來愈引起人們的關注&#xff0c;成為目前廣播、視頻與多媒體通信領域中的亮點與熱點。制定視頻編碼標準的…

python中錯誤和異常處理

錯誤和異常處理 在python中一共有2種錯誤&#xff1a;一種是語法錯誤&#xff0c;另外一種是異常。 語法錯誤 語法錯誤也叫做解析錯誤&#xff0c;是指python無法正確的識別代碼的造成的。根本原因在于人的行為&#xff1a;手殘&#xff0c;腦殘和眼殘的行為。 解決方法&#x…

listview 每行后面的小箭頭_主臥帶小衣帽裝修,這幾個裝修方案,你喜歡哪個?...

南京裝修交流圈 - 知乎?www.zhihu.com現在大部分人購買的房子面積還是普遍偏小的&#xff0c;每行每業都有自己的服裝講究&#xff0c;不同的場地、見不同的人等等。家中能有一個衣帽間自然也就是心中所向往和追求的。能夠有獨立的一個房間來做衣帽間當然更好&#xff0c;今天…

【養成好習慣】使用pipreqs導出本項目使用的環境

pipreqs pipreqs可以幫你找到當前項目的所有組件及其版本。就是當別人給你一個程序的時候&#xff0c;你要在自己電腦上運行起來&#xff0c;就需要安裝程序所依賴的組件&#xff0c;總不能自己一個一個找吧。 # 安裝 pip install -i https://pypi.tuna.tsinghua.edu.cn/simpl…

開放醫療交通大數據技術 服務于公共便民領域

孫丕恕還建議&#xff0c;交通擁堵的數據也可以開放&#xff0c;孫丕恕介紹&#xff0c;目前已有導航軟件有部分數據&#xff0c;但還有些滯后&#xff0c;如果能夠做到實時更新數據&#xff0c;那么也可以為出行者避開擁堵&#xff0c;節約時間。此外&#xff0c;如果二手車的…

Nagios_在不同平臺下的安裝

Nagios 是一款開源的免費網絡監視工具&#xff0c;致力于打造符合行業標準的 IT 基礎架構的監控系統。Nagios 提供了服務器、網絡和應用的完整的 IT 監控和報警&#xff0c;可以有效監控 Windows、Linux 和 Unix 的主機狀態&#xff0c;以及交換機、路由器、打印機等網絡設備。…

python中的模塊和包

模塊和包 一個模塊就是一個包含python代碼的文件。一個文件就是一個模塊 為什么要使用模塊 1.現在程序開發文件比較大&#xff0c;都放在一個文件中維護不方便&#xff0c;拆分成多個文件方便維護與管理 2.模塊可以增加代碼的重用率 3.模塊可以當作命名空間如何定義自己的模塊 …

2005年全球H.264編解碼器薈萃

2005年全球H.264編解碼器薈萃videosky.9126.com Peter Lee 2005-0920【摘要】H.264/AVC作為最新的視頻編碼標準&#xff0c;研究領域和產業界都非常看好該標準。尤其是產業界&#xff0c;針對H.264的軟硬件編解碼器可謂是百花齊放、百家爭鳴。本文中&#xff0c;筆者對2005年全…

【Tensorflow】基于卷積神經網絡實現車牌的識別

引言&#xff1a; 過去幾周我一直在涉足深度學習領域&#xff0c;尤其是卷積神經網絡模型。最近&#xff0c;谷歌圍繞街景多位數字識別技術發布了一篇不錯的paper。該文章描述了一個用于提取街景門牌號的單個端到端神經網絡系統。然后&#xff0c;作者闡述了基于同樣的網絡結構…

腳本啟動顯示查詢頻繁被服務器防御_面對CC攻擊,該如何進行防御

網站被攻擊是一件十分讓人惱火的事情&#xff0c;不僅僅是讓網站速度變慢、訪問異常&#xff0c;導致用戶體驗變差&#xff0c;用戶大量流失&#xff0c;而且還會導致網站關鍵詞排名下降甚至被降權&#xff0c;極大干擾了網站的正常穩定運行。那面對CC攻擊&#xff0c;該如何進…

面對SDN/NFV部署挑戰 網絡廠商能做什么?

近年來&#xff0c;隨著云計算的不斷發展&#xff0c;網絡虛擬化受到廣泛關注&#xff0c;而作為網絡虛擬化的實現方式&#xff0c;SDN自誕生之日起就擔負著網絡變革的使命。那么&#xff0c;SDN技術的驅動力是什么&#xff1f;SDN在引入現網的過程中&#xff0c;如何實現平滑無…

python中的tkinter模塊

tkinter介紹 tkinter是python自帶的GUI庫&#xff0c;是對圖形庫TK的封裝 tkinter是一個跨平臺的GUI庫&#xff0c;開發的程序可以在win&#xff0c;linux或者mac下運行 除此之外還存在很多圖形庫&#xff0c;例如 pythonWin 僅適合window的界面編程庫 wxPython 第三方界面編…

PAT甲題題解-1011. World Cup Betting (20)-誤導人的水題。。。

題目不嚴謹啊啊啊啊式子算出來結果是37.975樣例輸出的是37.98我以為是四舍五入的啊啊啊&#xff0c;所以最后輸出的是sum0.005結果告訴我全部錯誤啊結果直接保留兩位小數就可以了啊啊啊啊 水題也不要這么坑人啊啊啊啊 #include <iostream> #include <algorithm> #i…