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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis基础知识总结概述

發布時間:2025/4/16 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis基础知识总结概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。
Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關系數據庫起到很好的補充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。 --------出自百度百科

redis是屬于非關系型數據庫,其實呢它只是一種結構化儲存方法的集合,儲存結構就是key-value,說到redis就不得不提memcache,兩者區別就在于memcache是純內存的數據庫而redis是內存+磁盤,從redis3.0之后集群技術就相對成熟了,可以用于生產環境。

綜上可以簡單總結redis是內存數據庫,基于key-velue儲存數據,支持持久存儲,支持事務,支持主從,支持cluster(集群)。 redis官網:redis.io,redis命令參考手冊:http://redisdoc.com 手冊中詳細解釋并演示了命令的使用。

yum安裝redis

[root@BIGBOSS local]# yum install redis -y [root@BIGBOSS local]# rpm -q redis redis-3.2.12-1.el7.x86_64 # 啟動并檢查 [root@BIGBOSS local]# systemctl start redis [root@BIGBOSS local]# ss -tnl |grep 6379 LISTEN 0 128 127.0.0.1:6379 *:* # 此時并沒有配置端口和密碼可以直接連接 [root@BIGBOSS ~]# redis-cli 127.0.0.1:6379>

保護模式

早期redis試運行在內網環境中的,是沒有烤爐安全認證問題的,也就是說只要服務啟動了任何人都能訪問redis中的數據,但是后來有了云,有人就把redis用在云環境中,而且把監聽的IP設置成了0.0.0.0,所以就出現了安全漏洞,容易被人黑,從3.2開始就增加了一個認證的特性protected-mode yes但是只這一條還是不行的,還需要添加一條密碼 requirepass 12345。

  • 配置文件如下
  • [root@BIGBOSS ~]# vim /etc/redis.conf protected-mode yes bind 0.0.0.0 requirepass 12345
  • 重啟服務登錄測試
  • [root@BIGBOSS ~]# systemctl restart redis [root@BIGBOSS ~]# redis-cli >>>當執行這個命令的時候能登陸 127.0.0.1:6379> set name tom (error) NOAUTH Authentication required. >>> 但是執行命令的時候會提示沒有權限
  • 認證方式如下
  • 127.0.0.1:6379> auth 12345 >>>做認證 OK 127.0.0.1:6379> set name tom OK >>>認證后就能執行命令了

    redis的應用場景

    • 數據緩存:提高訪問性能
    • session共享:會話保持
    • 做為計數器:nginx+lua+redis實現計數器,實現ip的自動封禁。
    • 消息隊列:構建實時消息系統,聊天、群聊

    redis的持久化儲存

    redis不同于memcahed的地方就是他的數據不僅在內存中也存在于磁盤上,而將數據從內存中保存到磁盤上就叫做數據的持久化儲存。
    數據持久化的兩種機制:RDB、AOF
    RDB可以每個一段時間進行一次持久化,并且是基于快照的方式實現的。儲存文件的位置/var/lib/redis下。

    AOF的持久化,就是借助一個日志文件,這個日志文件只記錄所執行的寫的命令,不會記錄讀命令,再重啟服務器的時候,如果會九華數據中沒有,就會去都取日志中的內容進行重寫操作。

    一般在使用持久化的是我們都是兩種方式結合使用,當然也可以只是用其中一個,或者禁用持久化功能。

    redis中的數據類型

    • 字符串類型:可以是字符串,也可以是數字
    • 哈希(hash)類型:redis中的hash其實就是鍵值對的集合
    • 列表(list)類型:列表中的元素是有順序的,列表中勻速是從0開始的,列表其實是雙向的(左L 右R)
    • 集合類型:有序集合類型,無序集合類型

    redis中的消息模式

    • 隊列模式
      在列隊模式中其實就是每次插入數據都是載入在最前面的,而先插入的數據在后面,列表中始終維持了一個隊列所以稱之為隊列模式。
    10.220.5.171:6379> lpush list1 q1 (integer) 1 10.220.5.171:6379> lpush list1 q2 (integer) 2 10.220.5.171:6379> lpush list1 q3 (integer) 3 10.220.5.171:6379> lpush list1 q4 (integer) 4 10.220.5.171:6379> lrange list1 0 10 1) "q4" 2) "q3" 3) "q2" 4) "q1"
    • 發布-訂閱模式
      發布-訂閱模式下,每個消息被廣播到所有消費者中

    resis中的事務

    • 事務的隔離性:每個事務都是一個隔離的操作,事務中所有的命令都會按照順序執行,并且執行過程不會被其他事物打斷。
    • 原子性:事務中的明亮要么都執行,要么都不執行。

    redis使用事務的過程:

  • 啟動事務(MULTI)
  • 寫入要執行的操作
  • 執行事務(EXEC)
  • 演示事務:模擬場景tom銀行卡里有3000元,jerry銀行卡中有5000元,jerry給tom轉賬1000元,結果是兩人卡中都為4000元。

    • 創建一個有序集合叫做salary,tom的值為3000,jerry得知為5000
    127.0.0.1:6379> zadd selary 3000 tom (integer) 1 127.0.0.1:6379> zadd selary 5000 jerry (integer) 1 127.0.0.1:6379> zrange selary 0 10 withscores 1) "tom" 2) "3000" 3) "jerry" 4) "5000"
    • 使用事務完成轉賬
    127.0.0.1:6379> MULTI OK 127.0.0.1:6379> ZINCRBY selary 1000 tom QUEUED >>>操作并沒有被執行而是加入到了隊列中 127.0.0.1:6379> ZINCRBY selary -1000 jerry QUEUED >>>操作并沒有被執行而是加入到了隊列中 127.0.0.1:6379> EXEC >>>執行事務隊列中的操作 1) "4000" 2) "4000" 127.0.0.1:6379> ZRANGE selary 0 10 WITHSCORES 1) "jerry" 2) "4000" 3) "tom" 4) "4000"

    注意:如果不使用事務如下,當執行完ZINCRBY selary 1000 tom的操作,tom的賬戶里已經是4000了,此時jerry的賬戶里仍有5000,那么這1000是從哪里來的呢?很明顯這種不使用事務的操作會帶來數據不一致的問題

    127.0.0.1:6379> ZINCRBY selary 1000 tom "4000" 127.0.0.1:6379> ZINCRBY selary -1000 jerry "4000" 127.0.0.1:6379> ZRANGE selary 0 10 withscores 1) "jerry" 2) "4000" 3) "tom" 4) "4000"

    慢日志查詢

    慢日志主要依靠兩個變量來設置

    • slowlog-log-slower-than:指定面日志查詢的時間,單位是毫秒
    • slowlog-max-len:指定最多紀錄多少條慢日志

    慢日志的設定可以再配置文件中修改,也可以直接在命令行修改參數,但是在命令行修改只是修改內存中的但能立即生效,想要永久生效需要修改配置文件。

    本博文中提到的有些概念并沒有進行深入的剖析,知識做了整體的概述,后續博文中會有更詳細的講解。

    ------做運維之前很矯情的小年輕-----

    總結

    以上是生活随笔為你收集整理的Redis基础知识总结概述的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。