#Redis#JavaWeb學(xué)習(xí)筆記(2020/3/15)

一饼灿、關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫的區(qū)別

  • 關(guān)系型數(shù)據(jù)庫:MySQL、Oracle奕剃、SQLserver....
    • 數(shù)據(jù)之間有關(guān)聯(lián)
    • 存儲在硬盤上
  • 非關(guān)系型數(shù)據(jù)庫:Redis...
    • 數(shù)據(jù)之間無關(guān)聯(lián)
    • 存儲在內(nèi)存上(緩存中)

二、Redis

Redis是鍵值(Key-Value)存儲的數(shù)據(jù)庫。
Key是字符串類型的祈搜。
Value有五種類型:

  • string、字符串類型士八。
  • hash容燕、哈希類型、相當(dāng)于Map類型婚度,value里面存儲鍵值對蘸秘。
  • list、列表類型蝗茁,有序醋虏,可以有重復(fù)元素。
  • set哮翘、集合類型颈嚼,無序,不能有重復(fù)元素饭寺。
  • sortedset阻课、可以排序的集合類型,有序艰匙,不能有重復(fù)元素限煞。
①、Redis相關(guān)的文件:
  • redis.windows.conf:配置文件
  • redis-cli.exe:redis的客戶端
  • redis-server.exe:redis服務(wù)器端

②员凝、Redis操作(命令行操作):value的5種數(shù)據(jù)類型有不同的操作署驻。

  • 1、string
    • 增加:set key value
    • 獲冉∨:get key
    • 刪除:del key
  • 2旺上、hash
    • 增加:hset key field value (field相當(dāng)于value中的map的key)
    • 獲取:hget key field
    • 刪除:del key field
  • 3骤公、list
    • 增加:
      • lpush key value抚官、將元素從左邊做入棧操作
      • rpush key value、將元素從右邊做入棧操作
    • 獲取所有:
      • lrange key start end :范圍獲取
      • lrange key 0 -1 是獲取全部
    • 獲取&刪除:
      • lpop key阶捆、將元素從左邊做出棧操作凌节、并返回出棧元素钦听。
      • rpop key、將元素從右邊做出棧操作倍奢、并返回出棧元素朴上。
  • 4、set
    • 增加:sadd key value
    • 獲取所有:smembers key
    • 刪除:srem key value卒煞、刪除set集合中某個元素痪宰。
  • 5、sortedset畔裕、根據(jù)score 的大小來從小到大排序衣撬。
    • 增加:zadd key score value
    • 范圍獲取:zrange key start end
    • 刪除:zrem key value
  • 6扮饶、通用的命令
    • keys *:查看所有的key
    • type key:查看key對應(yīng)的value的類型
    • del key:刪除鍵值對具练。
③、Redis的持久化存儲:

因為Redis是存儲在內(nèi)存中的甜无,所以斷電扛点、關(guān)閉Redis數(shù)據(jù)庫,Redis中的數(shù)據(jù)就會消失岂丘。我們可以讓Redis的數(shù)據(jù)持久化的存儲

Redis的兩種持久化機制:

  • RDB::默認方式陵究,不需要進行配置,默認就使用這種機制
1. 編輯redis.windwos.conf文件 
# after 900 sec (15 min) if at least 1 key changed
save 900 1 
# after 300 sec (5 min) if at least 10 keys changed 
save 300 10 
# after 60 sec if at least 10000 keys changed 
save 60 10000
2.重啟Redis數(shù)據(jù)庫奥帘,并且指定配置文件名稱铜邮。
D:\.....>  redis-server.exe redis.windows.conf
  • AOF:日志記錄的方式,可以記錄每一條命令的操作翩概∩啵可以每一次命令操作后返咱,持久化數(shù)據(jù)
編輯redis.windwos.conf文件
  appendonly no(關(guān)閉aof) --> appendonly yes (開啟aof) 
  # appendfsync always : 每一次操作都進行持久化 
  appendfsync everysec : 每隔一秒進行一次持久化 
  # appendfsync no : 不進行持久化

三钥庇、Java操作Redis:Jedis

1.首先導(dǎo)入Jar包
2.Java操作Redis的三步:
//1. 獲取連接 
Jedis jedis = new Jedis("localhost",6379); 
//2. 操作 
jedis.set("username","zhangsan"); 
//3. 關(guān)閉連接 
jedis.close()

\color{red}{Jedis中對數(shù)據(jù)的操作方法與命令行中的完全一樣,參照使用即可咖摹。}

3.Jedis連接池:

為了不反復(fù)獲取連接釋放連接耗費系統(tǒng)資源评姨,我們使用池技術(shù),創(chuàng)建一個Jedis連接池萤晴,連接直接從池中獲取吐句,用完歸還到池中。

//0.創(chuàng)建一個配置對象 
JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(50); 
config.setMaxIdle(10); 
//1.創(chuàng)建Jedis連接池對象 
JedisPool jedisPool = new JedisPool(config,"localhost",6379); //2.獲取連接 
Jedis jedis = jedisPool.getResource(); 
//3. 使用 
jedis.set("hehe","heihei"); 
//4. 關(guān)閉 歸還到連接池中 
jedis.close();

為了更簡便店读,我們把Jedis的一些步驟抽取為一個工具類——JedisUtils

public class JedisPoolUtils {

    private static JedisPool jedisPool;

    static{
        //讀取配置文件
        InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
        //創(chuàng)建Properties對象
        Properties pro = new Properties();
        //關(guān)聯(lián)文件
        try {
            pro.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //獲取數(shù)據(jù)嗦枢,設(shè)置到JedisPoolConfig中
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
        config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));

        //初始化JedisPool
        jedisPool = new JedisPool(config,pro.getProperty("host"),Integer.parseInt(pro.getProperty("port")));



    }


    /**
     * 獲取連接方法
     */
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市屯断,隨后出現(xiàn)的幾起案子文虏,更是在濱河造成了極大的恐慌侣诺,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氧秘,死亡現(xiàn)場離奇詭異年鸳,居然都是意外死亡,警方通過查閱死者的電腦和手機丸相,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門搔确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灭忠,你說我怎么就攤上這事膳算。” “怎么了弛作?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵畦幢,是天一觀的道長。 經(jīng)常有香客問我缆蝉,道長宇葱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任刊头,我火速辦了婚禮黍瞧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘原杂。我一直安慰自己印颤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布穿肄。 她就那樣靜靜地躺著年局,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咸产。 梳的紋絲不亂的頭發(fā)上矢否,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音脑溢,去河邊找鬼僵朗。 笑死,一個胖子當(dāng)著我的面吹牛屑彻,可吹牛的內(nèi)容都是我干的验庙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼社牲,長吁一口氣:“原來是場噩夢啊……” “哼粪薛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搏恤,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤违寿,失蹤者是張志新(化名)和其女友劉穎让禀,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陨界,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡巡揍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了菌瘪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腮敌。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖俏扩,靈堂內(nèi)的尸體忽然破棺而出糜工,到底是詐尸還是另有隱情,我是刑警寧澤录淡,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布捌木,位于F島的核電站,受9級特大地震影響嫉戚,放射性物質(zhì)發(fā)生泄漏刨裆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一彬檀、第九天 我趴在偏房一處隱蔽的房頂上張望帆啃。 院中可真熱鬧,春花似錦窍帝、人聲如沸努潘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疯坤。三九已至,卻和暖如春深浮,著一層夾襖步出監(jiān)牢的瞬間压怠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工略号, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留刑峡,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓玄柠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親诫舅。 傳聞我的和親對象是個殘疾皇子羽利,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348