中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis內存數據庫

發布時間:2020-07-18 11:55:06 來源:網絡 閱讀:1845 作者:菜鳥的征程 欄目:關系型數據庫

===> Redis內存數據庫簡介:

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


===> Redis 的特點:

            ->基于內存

    -> 持久化: RDB、AOF

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

            -> 豐富的數據類型

            -> 支持簡單的事務

            -> 支持主從復制

            -> 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"		

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

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


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

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

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

            -> Redis的分片:

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

                        Twemproxy 作為代理,可接受來自多個程序 的訪問,按照路由規則,轉發給后臺的各個 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的事務的本質:將一組操作放入隊列中,批量執行

            -> 對比Oracle和Redis的事務

                 redis內存數據庫

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

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


===> Redis的鎖機制

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

         命令:watch

            -> Redis 的鎖實例:(買票

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


===> Redis的消息機制

            -> Redis 消息系統類型

                    --- 同步消息系統:需要對方的回答

                    --- 異步消息系統:不需要等待對方回答

            -> Redis 消息類型

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

                    --- Topic: 主題 (廣播)

                    (*)Redis和Kafka:只支持Topic

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

 推薦:Weblogic


            -> Redis 消息相關命令

                    publish: 發布消息 指定頻道

                    subscribe:訂閱消息 指定頻道

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



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

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

            -> RDB:快照的方式。每隔一段時間,把內存中的數據寫到rdb文件中

                    --- 優點:恢復的速度快

                    --- 缺點:如果在兩次RDB之間發生了掉電,數據肯定丟失

                    --- 參數:

                            規則:從下往上

                            save 900 1      在15分鐘內,如果有1個key的value發生了變化,就產生RDB文件

                            save 300 10     在5分鐘內,如果有10個key的value發生了變化,就產生RDB文件

                            save 60 10000   在60秒內,如果有1w個key的value發生了變化,就產生RDB文件

                            

                            stop-writes-on-bgsave-error yes 如果在寫RDB文件的時候產生了錯誤,停止新的數據寫入

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

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

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

                            dir ./    保存的目錄



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

                    --- 優點:數據安全性高

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

                    --- 默認禁用

                    --- 參數:

        appendonly no  ===> yes     #開啟AOF                
        appendfilename "appendonly.aof"  # 如果在集群下,一臺主機上運行多個Redis的實例,建議區別aof文件
                  
        # 什么時候記錄日志???
        # appendfsync always  # 每個操作都記錄日志。最安全,性能最差
        appendfsync everysec  # 默認:每秒
        # appendfsync no      # 由操作系統決定
        no-appendfsync-on-rewrite no # 重寫發生的時候,是否寫入aof的新日志
        # 什么時候執行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 問題鏈接:(找了幾個比較經典的問題處理鏈接,留作收藏,以后備用


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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙川县| 德格县| 永胜县| 抚顺市| 弥渡县| 拜泉县| 河间市| 西吉县| 广西| 岑溪市| 清镇市| 平乐县| 鄂州市| 南汇区| 营山县| 西丰县| 临高县| 五台县| 焦作市| 酒泉市| 广丰县| 纳雍县| 车险| 利津县| 南阳市| 蒙自县| 贺州市| 汉中市| 武功县| 湘西| 舟曲县| 科技| 定日县| 镇坪县| 三台县| 云南省| 益阳市| 额尔古纳市| 安溪县| 酒泉市| 永修县|