【Redis緩存】- Redis數據結構、基本命令操作、持久化

 

目錄

 一、Redis 數據結構

 二、Redis 基本命令操作

1、字符串型:string

2、哈希類型:hash

3、列表類型:list

4、集合類型:set

5、有序集合類型:sortedset

6、通用命令

三、Redis持久化

1、RDB 持久化機制

2、 AOF 持久化機制


一、Redis 數據結構

要想使用 Redis 進行數據存儲,首先需要了解 Redis 的數據結構,redis存儲的是:key,value格式的數據,其中key都是字符串,value有5種不同的數據結構:

  1. 字符串類型 string
  2. 哈希類型 hash : map格式  
  3. 列表類型 list : linkedlist格式。支持重複元素
  4. 集合類型 set  : 不允許重複元素
  5. 有序集合類型 sortedset:不允許重複元素,且元素有順序

這五種數據結構存儲方式可見下表:

 二、Redis 基本命令操作

針對以上五種不同的數據結構,Redis 有相應的命令來進行操作,可以達到對數據的存儲、獲取和刪除

1、字符串型:string

  • 存儲:set key value
    • eg:set name oneStar
  • 獲取:get key
    • eg:get name
  • 刪除:del key
    • eg:del name

2、哈希類型:hash

  • 存儲:hset key field value
    • eg:hset myhash name twoStar
              hset myhash age 18
  • 獲取指定的field對應的值:hget key field
  • 獲取所有的field和value:hgetall key
    • eg:hget myhash name
    • eg:hgetall myhash
  • 刪除:hdel key field
    • eg:hdel myhash name

3、列表類型:list

可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

  • 存儲
    • lpush key value:將元素加入列表左表
    • rpush key value:將元素加入列表右邊
      • eg:lpush myList a
                lpush myList b
                rpush myList c
  • 獲取:lrange key start end :範圍獲取
    • eg:lrange myList 0 -1
  • 刪除
    • lpop key: 刪除列表最左邊的元素,並將元素返回
      • eg:lpop myList
    • rpop key: 刪除列表最右邊的元素,並將元素返回
      • eg:rpop

4、集合類型:set

不允許重複元素

  • 存儲:sadd key value
    • eg:sadd myset a
  • 獲取set集合中所有元素:smembers key
    • eg:smembers myset
  • 刪除set集合中的某個元素:srem key value
    • eg:srem myset a

5、有序集合類型:sortedset

不允許重複元素,且元素有順序.每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。

  • 存儲:zadd key score value
    • eg:zadd mysort 60 oneStar
              zadd mysort 50 twoStar
              zadd mysort 80 threeStar
  • 獲取:zrange key start end [withscores]
    • eg1:zrange mysort 0 -1
    • eg2:zrange mysort 0 -1 withscores
  • 刪除:zrem key value
    • eg:zrem mysort oneStar

6、通用命令

  • keys * : 查詢所有的鍵
    • eg:keys *
  • type key : 獲取鍵對應的value的類型
    • eg:type myhash
  • del key:刪除指定的key value
    • eg:del myhash

三、Redis持久化

redis是一個內存數據庫,當redis服務器重啓,獲取電腦重啓,數據會丟失,爲了解決這個問題,我們可以將 redis 內存中的數據持久化保存到硬盤的文件中。

Redis 持久化機制有兩種:

1、RDB 持久化機制

RDB 持久化機制是默認的方式,不需要進行配置,默認就使用這種機制,在一定的間隔時間中,檢測key的變化情況,然後持久化數據,對性能影響不大。

【1】RDB 持久化機制,是根據 Redis 安裝目錄下的 redis.windwos.conf 文件中配置內容決定的:

save 900 1
save 300 10
save 60 10000
  • save 900 1:如果 15 分鐘後最少有一個 key 被改變就持久化一次
  • save 300 10:如果 5 分鐘後最少有 10 個 key 被改變就持久化一次
  • save 60  10000:如果 1 分鐘後最少有 10000 個 key 被改變就持久化一次

可以通過改變這個配置來指定自己想要的持久化時間和次數

【2】重新在命令行啓動redis服務器,並指定配置文件名稱,便可以進行持久化了

D:\Redis\redis-2.8.9> .\redis-server.exe .\redis.windows.conf

2、 AOF 持久化機制

AOF 持久化機制是使用日誌記錄的方式,可以記錄每一條命令的操作,可以每一次命令操作後,持久化數據,執行一條語句就進行一次持久化,對性能的影響比較大。

【1】開啓 AOF 持久化機制

編輯 redis.windwos.conf 文件,找到 appendonly no,將 no 改爲 yes,即表示開啓 AOF 持久化機制

 

在 redis.windwos.conf 文件中,可以找到如下信息:

  • # appendfsync always : 每一次操作都進行持久化
  • appendfsync everysec : 每隔一秒進行一次持久化
  • # appendfsync no     : 不進行持久化

【2】重新在命令行啓動redis服務器,並指定配置文件名稱,便可以進行持久化了

D:\Redis\redis-2.8.9> .\redis-server.exe .\redis.windows.conf

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章