久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

        手機站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

        千鋒教育

        掃一掃進入千鋒手機站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時隨地免費學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > Redis用select選擇數(shù)據(jù)庫有什么意義?

        Redis用select選擇數(shù)據(jù)庫有什么意義?

        來源:千鋒教育
        發(fā)布人:xqq
        時間: 2023-10-13 15:24:41 1697181881

        一、Redis用select選擇數(shù)據(jù)庫的意義

        1、數(shù)據(jù)是隔離的

        Redis的不同數(shù)據(jù)庫之間是互相隔離的,每個數(shù)據(jù)庫中的命名空間都是獨立的,數(shù)據(jù)不會互相干擾,可以提供更好的數(shù)據(jù)管理和保護。

        2、能夠提高效率

        使用不同的數(shù)據(jù)庫可以避免數(shù)據(jù)之間的相互干擾,減少系統(tǒng)的競爭,并提高系統(tǒng)的并發(fā)能力和性能。

        3、數(shù)據(jù)可以進行分類

        可以基于業(yè)務(wù)需要將數(shù)據(jù)分門別類地存儲在不同的數(shù)據(jù)庫中,方便對不同類型的數(shù)據(jù)進行分類管理和查詢。

        二、Redis介紹

        1、定義

        redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與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,Erlang等客戶端,使用很方便。

        Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得Redis可執(zhí)行單層樹復(fù)制。存盤可以有意無意的對數(shù)據(jù)進行寫操作。由于完全實現(xiàn)了發(fā)布/訂閱機制,使得從數(shù)據(jù)庫在任何地方同步樹時,可訂閱一個頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對讀取操作的可擴展性和數(shù)據(jù)冗余很有幫助。

        redis的官網(wǎng)地址,非常好記,是redis.io。(域名后綴io屬于國家域名,是british Indian Ocean territory,即英屬印度洋領(lǐng)地),Vmware在資助著redis項目的開發(fā)和維護。從2010年3月15日起,Redis的開發(fā)工作由VMware主持。從2013年5月開始,Redis的開發(fā)由Pivotal贊助。

        2、數(shù)據(jù)模型

        Redis的外圍由一個鍵、值映射的字典構(gòu)成。與其他非關(guān)系型數(shù)據(jù)庫主要不同在于:Redis中值的類型不僅限于字符串,還支持如下抽象數(shù)據(jù)類型:

        字符串列表無序不重復(fù)的字符串集合有序不重復(fù)的字符串集合鍵、值都為字符串的哈希表

        值的類型決定了值本身支持的操作。Redis支持不同無序、有序的列表,無序、有序的集合間的交集、并集等高級服務(wù)器端原子操作。

        三、Redis中的數(shù)據(jù)結(jié)構(gòu)

        1、string(字符串)

        string是最簡單的類型,你可以理解成與Memcached一模一樣的類型,一個key對應(yīng)一個value,其上支持的操作與Memcached的操作類似。但它的功能更豐富。redis采用結(jié)構(gòu)sdshdr和sds封裝了字符串,字符串相關(guān)的操作實現(xiàn)在源文件sds.h/sds.c中。

        數(shù)據(jù)結(jié)構(gòu)定義如下:

        typedefchar*sds;structsdshdr{longlen;longfree;charbuf[];};

        2、list(雙向鏈表)

        list是一個鏈表結(jié)構(gòu),主要功能是push、pop、獲取一個范圍的所有值等等。操作中key理解為鏈表的名字。對list的定義和實現(xiàn)在源文件adlist.h/adlist.c,相關(guān)的數(shù)據(jù)結(jié)構(gòu)定義如下:

        //list迭代器typedefstructlistIter{listNode*next;intdirection;}listIter;//list數(shù)據(jù)結(jié)構(gòu)typedefstructlist{listNode*head;listNode*tail;void*(*dup)(void*ptr);void(*free)(void*ptr);int(*match)(void*ptr,void*key);unsignedintlen;listIteriter;}list;

        3、dict(hash表)

        set是集合,和我們數(shù)學(xué)中的集合概念相似,對集合的操作有添加刪除元素,有對多個集合求交并差等操作。操作中key理解為集合的名字。在源文件dict.h/dict.c中實現(xiàn)了hashtable的操作,數(shù)據(jù)結(jié)構(gòu)的定義如下:

        //dict中的元素項typedefstructdictEntry{void*key;void*val;structdictEntry*next;}dictEntry;//dict相關(guān)配置函數(shù)typedefstructdictType{unsignedint(*hashFunction)(constvoid*key);void*(*keyDup)(void*privdata,constvoid*key);void*(*valDup)(void*privdata,constvoid*obj);int(*keyCompare)(void*privdata,constvoid*key1,constvoid*key2);void(*keyDestructor)(void*privdata,void*key);void(*valDestructor)(void*privdata,void*obj);}dictType;//dict定義typedefstructdict{dictEntry**table;dictType*type;unsignedlongsize;unsignedlongsizemask;unsignedlongused;void*privdata;}dict;//dict迭代器typedefstructdictIterator{dict*ht;intindex;dictEntry*entry,*nextEntry;}dictIterator;

        dict中table為dictEntry指針的數(shù)組,數(shù)組中每個成員為hash值相同元素的單向鏈表。set是在dict的基礎(chǔ)上實現(xiàn)的,指定了key的比較函數(shù)為dictEncObjKeyCompare,若key相等則不再插入。

        4、zset(排序set)

        zset是set的一個升級版本,他在set的基礎(chǔ)上增加了一個順序?qū)傩?,這一屬性在添加修改元素的時候可以指定,每次指定后,zset會自動重新按新的值調(diào)整順序??梢岳斫饬擞袃闪械膍ysql表,一列存value,一列存順序。操作中key理解為zset的名字。數(shù)據(jù)結(jié)構(gòu)的定義如下:

        typedefstructzskiplistNode{structzskiplistNode**forward;structzskiplistNode*backward;doublescore;robj*obj;}zskiplistNode;typedefstructzskiplist{structzskiplistNode*header,*tail;unsignedlonglength;intlevel;}zskiplist;typedefstructzset{dict*dict;zskiplist*zsl;}zset;

        延伸閱讀1:Redis的文件格式

        redis使用了兩種文件格式,即全量數(shù)據(jù)和增量請求。全量數(shù)據(jù)格式是把內(nèi)存中的數(shù)據(jù)寫入磁盤,便于下次讀取文件進行加載;增量請求文件則是把內(nèi)存中的數(shù)據(jù)序列化為操作請求,用于讀取文件進行replay得到數(shù)據(jù),序列化的操作包括SET、RPUSH、SADD、ZADD。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
        免費領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        foxmail 7.2使用的是什么方式存儲的郵件?

        一、foxmail 7.2使用的是什么方式存儲的郵件1、foxmail郵件存儲位置在大家的安裝目錄下,我們可以直接右擊foxmail圖標(biāo)然后我們點擊“打開文件位...詳情>>

        2023-10-13 17:08:36
        數(shù)據(jù)庫中關(guān)系代數(shù)與關(guān)系運算的區(qū)別是什么?

        一、數(shù)據(jù)庫中關(guān)系代數(shù)與關(guān)系運算的區(qū)別關(guān)系代數(shù)可以理解為一種抽象的查詢語言,它用對關(guān)系的運算來表達查詢。運算對象、運算符、運算結(jié)果是運算...詳情>>

        2023-10-13 17:00:59
        如何建立數(shù)據(jù)庫,利用什么軟件建立數(shù)據(jù)庫?

        一、如何建立數(shù)據(jù)庫CREATE DATABASE:MySQL語法示例應(yīng)該提到的在MySQL中創(chuàng)建數(shù)據(jù)庫的名列前茅種方法是使用CREATE DATABASE語句。該語句以指定的...詳情>>

        2023-10-13 16:56:43
        為什么使用Redis做緩存而不會使用關(guān)系型數(shù)據(jù)庫?

        一、為什么使用Redis做緩存而不會使用關(guān)系型數(shù)據(jù)庫首先要知道緩存緩存是干什么的,緩存是指可以進行高速數(shù)據(jù)交換的存儲器,它先于內(nèi)存與CPU交換...詳情>>

        2023-10-13 16:43:22
        mysql 非少數(shù)索引的等值查詢?yōu)槭裁匆觛ap鎖?

        一、mysql 非少數(shù)索引的等值查詢?yōu)槭裁匆觛ap鎖mysql 中非少數(shù)索引使用的也是 B+ 樹來組織數(shù)據(jù)結(jié)構(gòu)。假設(shè) id 的索引結(jié)構(gòu)在葉子節(jié)點從左到右的...詳情>>

        2023-10-13 16:33:11
        快速通道
        绥阳县| 仪征市| 博湖县| 五华县| 辛集市| 兴城市| 登封市| 甘德县| 晋中市| 昭通市| 汉沽区| 洪雅县| 随州市| 报价| 丹凤县| 济宁市| 湾仔区| 宜章县| 汉沽区| 万全县| 大方县| 洪雅县| 沾化县| 瑞丽市| 海南省| 田阳县| 宿州市| 赤峰市| 双桥区| 南陵县| 永安市| 莫力| 界首市| 昂仁县| 叶城县| 古交市| 巩义市| 崇信县| 浙江省| 福泉市| 丹棱县|