Redis入門

@(數(shù)據(jù)庫)

Redis

C語言開發(fā)的非關(guān)系型鍵值對數(shù)據(jù)庫


image.png

1 基本介紹

  1. redis 的數(shù)據(jù)結(jié)構(gòu)
    • redis存儲的實:key-value格式的數(shù)據(jù),其中key都是字符串,value鼬5種不同的數(shù)據(jù)結(jié)構(gòu)
      • value的數(shù)據(jù)結(jié)構(gòu)
        1. 字符串類型 String
        2. 哈希類型 hash:map格式
        3. 列表類型 list: Linkedlist格式
        4. 集合類型 set
        5. 有序集合類型 sortedset


        image.png

2 具體使用

2.1.1 字符串類型 String
  1. 存儲 set key value
  2. 獲取 get key
  3. 刪除 del key
2.1.2 哈希類型 hash
  1. 存儲 hset key field value(相當(dāng)于map中鍵值)
  2. 獲取 hget key field
    • hget key field: 獲取指定的field對應(yīng)的值
    • hgetall key :獲取所有的field 和value
  3. 刪除 hdel key field
2.1.3 列表類型 list

添加一個元素到列表的頭部(左邊)或者尾部(右邊),允許重復(fù)

  1. 添加
    1. lpush key value: 將元素加入到列表的左邊
    2. rpush key value: 將元素添加到列表的右邊
  2. 獲取
    • lrange key start end :范圍獲取
  3. 刪除
    • lpop key: 刪除最左邊的元素并將元素返回
    • rpop key: 刪除最右邊的元素,并將元素返回
2.1.4 集合類型 set 不允許重復(fù)(無序)
  1. 存儲 :sadd key value
  2. 獲?。簊members key :獲取set集合中的所有元素
  3. 刪除:srem key value :刪除set集合中的某個元素
2.1.5 有序集合類型 sortedset 不允許重復(fù),且元素有序
  1. 存儲:zadd key score value
  2. 獲取 :zrange key start end
    • zrange key start end withscores 連帶分?jǐn)?shù)一塊取出來
  3. 刪除:zrem key value
2.1.6 通用命令
  1. keys * :查詢所有的鍵
  2. type key :獲取鍵對應(yīng)的value的類型
  3. del key:刪除指定的key value

3 Redis 持久化

redis是一個內(nèi)存數(shù)據(jù)庫,當(dāng)Redis服務(wù)器重啟后,數(shù)據(jù)會丟失,我們可以將Reids內(nèi)存中的數(shù)據(jù)持久化保存到硬盤的文件

  1. redis持久化機(jī)制:
    • RDB:默認(rèn)方式,再一定時間間隔內(nèi),檢測key的變化情況,然后持久化數(shù)據(jù)(保存在目錄下以.rdb后綴)
      1. 編輯redis.windows.config文件
      2. 重新啟動redis服務(wù)器,并指定配置文件名稱(redis -server.exe redis.windows.config
    • AOF:日志記錄的方式,可以記錄每一條命令的操作,可以每一次命令操作之后,持久化數(shù)據(jù)(保存在.aof文件中)
      1. 編輯redis.windows.conf 文件
      2. appendonly no(默認(rèn))改為appendonly yes(開啟aof)
        • # appendfsync always 每一次操作都進(jìn)行持久化
        • appendfsync everysec 每隔一秒進(jìn)行一次持久化
        • # appendfsync no 不進(jìn)行持久化

4 Jedis

Java 用來操作Redis數(shù)據(jù)庫的

4.1.1 快速入門
  1. 導(dǎo)入jar包
  2. 代碼是吸納
        //獲取連接
        Jedis jedis =  new Jedis("localhost",6379);
        //操作
        jedis.set("username","zhangsna");
        //關(guān)閉連接
        jedis.close();
4.1.2 操作五種數(shù)據(jù)結(jié)構(gòu)

操作的命令喝命令行操作基本一致

4.1.3 jedis連接池:JedisPool
  • 使用
    1. 創(chuàng)建JedisPoolConfig 配置對象(可以根據(jù)電腦配置一些信息,將對象給JedisPool連接池對象)
    2. 創(chuàng)建JedisPool連接池對象
    3. 使用getResouce獲取連接
    4. 使用
    5. 關(guān)閉(其實是歸還到連接池)
public class JedisPoolUtil {

    private static JedisPool jedisPool ;
    //初始化這個類就加載這個代碼塊
    static {
        //讀取配置文件(在配置文件中配置相關(guān)項,修改更方便)
        InputStream inputStream = JedisPoolUtil.class.getClassLoader().getResourceAsStream("jedis.properties");
        //創(chuàng)建Properties 對象
        Properties properties = new Properties();
        //關(guān)聯(lián)文件
        try {
            properties.load(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //獲取數(shù)據(jù),設(shè)置到JedisPoolConfig中
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
       //初始化JedisPool
       jedisPool = new JedisPool(config,properties.getProperty("host"), Integer.parseInt(properties.getProperty("port"))) ;

    }

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

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 由于自己當(dāng)前做的項目過程中間接的利用到了Redis,對其產(chǎn)生了一點興趣,就買了本Redis入門指南(李子驊編著)看...
    Carey_Wu閱讀 419評論 0 1
  • NoSQL的概述 什么是NoSQL Not Only Sql 非關(guān)系型數(shù)據(jù)庫 為什么需要NoSQL High pe...
    瑯筑閱讀 313評論 0 1
  • Redis 是一個鍵值對數(shù)據(jù)庫(key-value DB),數(shù)據(jù)庫的值可以是字符串、集合、列表等多種類型的對象,而...
    吳昂_ff2d閱讀 3,724評論 0 5
  • Redis是一個key-value存儲系統(tǒng)。(Key-Value Store) Key-Value Store的可...
    一路搖到頂閱讀 440評論 0 0
  • 1 Redis介紹1.1 什么是NoSql為了解決高并發(fā)、高可擴(kuò)展、高可用、大數(shù)據(jù)存儲問題而產(chǎn)生的數(shù)據(jù)庫解決方...
    克魯?shù)吕?/span>閱讀 5,707評論 0 36

友情鏈接更多精彩內(nèi)容