真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

redis內(nèi)存數(shù)據(jù)庫

===>redis內(nèi)存數(shù)據(jù)庫簡介:

創(chuàng)新互聯(lián)是一家成都網(wǎng)站設計、做網(wǎng)站,提供網(wǎng)頁設計,網(wǎng)站設計,網(wǎng)站制作,建網(wǎng)站,按需網(wǎng)站建設,網(wǎng)站開發(fā)公司,從2013年開始是互聯(lián)行業(yè)建設者,服務者。以提升客戶品牌價值為核心業(yè)務,全程參與項目的網(wǎng)站策劃設計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。

                 Redis 是完全開源免費的,遵守BSD協(xié)議,是一個高性能的key-value數(shù)據(jù)庫。

===> Redis 的特點:

            ->基于內(nèi)存

    -> 持久化: RDB、AOF

            -> 消息機制:支持String,只支持Topic的消息(廣播)  

            -> 豐富的數(shù)據(jù)類型

            -> 支持簡單的事務

            -> 支持主從復制

            -> HA(哨兵): 對版本有要求,需要 2.4 版本以上

===> Redis的安裝和配置: 需要gcc的編譯器

            -> Redis 單機部署:

        tar -zxvf redis-3.0.5.tar.gz        
        make
        make PREFIX=/app/redis install

            -> Redis的相關命令

                    redis-benchmark       提供的一個壓力測試工具,模擬:10萬操作

                    redis-check-aof       檢查AOF日志文件

                    redis-check-dump      檢查RDB快照文件

                    redis-cli                     命令行

                    redis-sentinel        哨兵(Redis的HA) -----> 配置文件:sentinel.conf 2.4版本以上

                    redis-server      服務器

            -> 配置文件   

                    ---redis.conf

                            daemonize yes  改成yes 后,啟動后會在后臺運行

                            port 6379

            -> 服務啟動命令:redis-server conf/redis.conf

            -> 客戶端連接命令: redis-cli -p 6379  |  redis-cli  -h 192.168.10.210 -p 6379


===> Redis 集群的安裝和配置:(星型架構,線型架構)

            -> 此處只講解星型架構(此架構結構為單臺服務器上使用不同端口啟動三個服務組成集群,多臺服務器同理)

                --- 主:6379端口               (關閉 RDB 和 AOF)

                --- 從:6380, 6381端口  (開啟 RDB 和 AOF)

            -> 配置文件:

	    redis6379.conf
		daemonize yes
		#save 900 1
		#save 300 10
		#save 60 10000
				
		pidfile /app/redis/pids/redis_6379.pid
		logfile "/app/redis/logs/redis_6379/redis.log"
		dbfilename dump.rdb
		dir "/data/redis_data/redis_6379"
		    
		appendonly no
		appendfilename "appendonly6379.aof"
				
	    redis6380.conf
		port 6380
		slaveof 192.168.157.11 6380
		    
		pidfile /app/redis/pids/redis_6380.pid
		logfile "/app/redis/logs/redis_6380/redis.log"
		dbfilename dump.rdb
		dir "/data/redis_data/redis_6380"
		    
		appendonly yes
		appendfilename "appendonly6380.aof"
				
	    redis6381.conf
		port 6381

		slaveof 192.168.157.11 6379
		pidfile /app/redis/pids/redis_6381.pid
		logfile "/app/redis/logs/redis_6381/redis.log"
		dbfilename dump.rdb
		dir "/data/redis_data/redis_6381"
		    
		appendonly yes
		appendfilename "appendonly6381.aof"		

                 (*)注意:默認:從節(jié)點只讀

		(error) READONLY You can't write against a read only slave.
		修改參數(shù):
		slave-read-only yes

            -> Redis的HA:哨兵機制(要在解壓的安裝包中copy sentinel.conf 文件到 /conf 目錄下)

      sentinel monitor mymaster  192.168.10.210  6379  1
      #                              IP            端口   哨兵個數(shù)
      sentinel auth-pass    
      # 配置連接主節(jié)點的密碼
      sentinel down-after-milliseconds  mymaster  30000
      # 表示 30 秒內(nèi)如果沒有收到主節(jié)點的心跳,哨兵就認為主節(jié)點down
      sentinel  parallel-syncs  mymaster 1
      # 選舉出新的主節(jié)點后,可以同時連接其他從節(jié)點的個數(shù)
      sentinel  failover-timeout  mymaster  180000
      # 失敗切換時,允許的最大時間

                    ---哨兵啟動命令:redis-sentinel sentinel.conf

            -> Redis的分片:

                    ---Twemproxy 是一種代理分片機制, 由 Twitter 開源

                        Twemproxy 作為代理,可接受來自多個程序 的訪問,按照路由規(guī)則,轉發(fā)給后臺的各個 Redis 服務器, 再原路返回

                    --- 安裝Twemproxy

       git clone https://github.com/twitter/twemproxy.git
       cd twemproxy/
       
       CFLAGS="-ggdb3 -O0" autoreconf -fvi && ./configure --prefix=/app/proxy --enable-debug=log && make &&  make install


                    --- 配置文件:nutcracker.yml  (需要在解壓的安裝包/conf 目錄下copy 到安裝目錄的 conf 目錄下)

       alpha:
       listen: 127.0.0.1:22121
       hash: fnvla_64
       distribution: ketama
         auto_eject_hosts: true
         redis: true
         server_retry_timeout: 2000
         server_failure_limit: 1
         servers:
         - 192.168.10.210:6380
         - 192.168.10.210:6381

                    --- 檢查配置文件是否正確:  ./nutcracker  -t  conf/nutcracker.yml

                    --- 啟動代理服務器: ./nutcracker -d -c  conf/nutcracker.yml

                    --- 此時連接Redis 需要使用 Twemproxy 配置的端口連接: redis-cli  -p  22121

===> Redis的操作:基于key-value形式 

            -> 

                    --- 

===> Redis的事務: 不是真正的事務

            -> Redis的事務的本質(zhì):將一組操作放入隊列中,批量執(zhí)行

            -> 對比Oracle和Redis的事務

                 redis內(nèi)存數(shù)據(jù)庫

            -> Redis 的事務實例:(銀行轉賬)

      set tom 1000
      set mike 1000
      multi
      decrby tom 100
      incrby mike 100
      exec

===> Redis的鎖機制

            -> 核心:當事務提交的時候,如果監(jiān)控的值,發(fā)生變化,則提交失敗

         命令:watch

            -> Redis 的鎖實例:(買票)

      set ticket 1        
      set tom 1000
          
      用戶一:tom
      multi
      decr ticket
      decrby tom 100
      exec  -------> 提交的時候,慢了一點
          
      1) (integer) -1   ====> 票數(shù)不可能是-1
      2) (integer) 900
          
      用戶二:在tom提交前,已經(jīng)把票買走了  
      decr ticket


===> Redis的消息機制

            -> Redis 消息系統(tǒng)類型

                    --- 同步消息系統(tǒng):需要對方的回答

                    --- 異步消息系統(tǒng):不需要等待對方回答

            -> Redis 消息類型

                    --- Queue: 隊列(點對對)

                    --- Topic: 主題 (廣播)

                   (*)Redis和Kafka:只支持Topic

                    (*)  JMS: Java Message Service ----> 都支持:Queue和Topic

 推薦:Weblogic

            -> Redis 消息相關命令

                    publish: 發(fā)布消息 指定頻道

                    subscribe:訂閱消息 指定頻道

                    psubscribe:訂閱消息 使用通配符指定頻道


===> Redis的持久化:  RDB、AOF

            -> 持久化作用:進行恢復

            -> RDB:快照的方式。每隔一段時間,把內(nèi)存中的數(shù)據(jù)寫到rdb文件中

                    --- 優(yōu)點:恢復的速度快

                    --- 缺點:如果在兩次RDB之間發(fā)生了掉電,數(shù)據(jù)肯定丟失

                    --- 參數(shù):

                            規(guī)則:從下往上

                            save 900 1      在15分鐘內(nèi),如果有1個key的value發(fā)生了變化,就產(chǎn)生RDB文件

                            save 300 10     在5分鐘內(nèi),如果有10個key的value發(fā)生了變化,就產(chǎn)生RDB文件

                            save 60 10000   在60秒內(nèi),如果有1w個key的value發(fā)生了變化,就產(chǎn)生RDB文件

                            

                            stop-writes-on-bgsave-error yes 如果在寫RDB文件的時候產(chǎn)生了錯誤,停止新的數(shù)據(jù)寫入

                            rdbcompression yes 是否壓縮(優(yōu)點:節(jié)約了空間  缺點:恢復的效率低),可以設置為:no

                            rdbchecksum yes  校驗和來檢查RDB文件是否是好的

                            dbfilename dump.rdb  如果在集群下,一臺主機上運行多個Redis的實例,建議區(qū)別rdb文件

                            dir ./    保存的目錄


            -> AOF:append only file(記錄日志)

                    --- 優(yōu)點:數(shù)據(jù)安全性高

                    --- 缺點:恢復速度慢,需要重做日志,達到恢復的目的

                    --- 默認禁用

                    --- 參數(shù):

        appendonly no  ===> yes     #開啟AOF                
        appendfilename "appendonly.aof"  # 如果在集群下,一臺主機上運行多個Redis的實例,建議區(qū)別aof文件
                  
        # 什么時候記錄日志???
        # appendfsync always  # 每個操作都記錄日志。最安全,性能最差
        appendfsync everysec  # 默認:每秒
        # appendfsync no      # 由操作系統(tǒng)決定
        no-appendfsync-on-rewrite no # 重寫發(fā)生的時候,是否寫入aof的新日志
        # 什么時候執(zhí)行AOF重寫?
        auto-aof-rewrite-percentage 100
        auto-aof-rewrite-min-size 64mb
                			
		# 什么是AOF的重寫:rewrite
		set i 0
		incr i
		incr i
								======> 問題: AOF文件太大了
		100次
		****
		incr i

		最終:i = 100
				
		# 演示:AOF的重寫
		模擬:10萬個操作
		bin/redis-benchmark -n 100000			

===> Redis 問題鏈接:(找了幾個比較經(jīng)典的問題處理鏈接,留作收藏,以后備用)

            -> http://blog.sina.com.cn/s/blog_a1e9c7910102vmx5.html

            -> http://blog.csdn.net/a491857321/article/details/52006376


文章題目:redis內(nèi)存數(shù)據(jù)庫
文章轉載:http://weahome.cn/article/jsjjoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部