redis入門

Redis入門

簡介

​ Redis是一個開源,高級的鍵值存儲和一個適用的解決方案,用於構建高性能,可擴展的Web應用程序。其主要特點有:

  • Redis將其數據庫完全保存在內存中,僅使用磁盤進行持久化。(內存數據庫)
  • 與其它鍵值數據存儲相比,Redis有一組相對豐富的數據類型。
  • Redis可以將數據複製到任意數量的從機中。

​ 爲啥我們要用redis,希望下面的優點能說服你:

  • 異常快 - Redis非常快,每秒可執行大約110000次的設置(SET)操作,每秒大約可執行81000次的讀取/獲取(GET)操作。
  • 支持豐富的數據類型 - Redis支持開發人員常用的大多數數據類型,例如列表,集合,排序集和散列等等。這使得Redis很容易被用來解決各種問題,因爲我們知道哪些問題可以更好使用地哪些數據類型來處理解決。
  • 操作具有原子性 - 所有Redis操作都是原子操作,這確保如果兩個客戶端併發訪問,Redis服務器能接收更新的值。
  • 多實用工具 - Redis是一個多實用工具,可用於多種用例,如:緩存,消息隊列(Redis本地支持發佈/訂閱),應用程序中的任何短期數據,例如,web應用程序中的會話,網頁命中計數等。

安裝

  1. 官網下載最新stable(穩定)版。放到linux服務器上。

  2. 按照如下命令安裝

    tar -zvxf redis-3.2.8.tar.gz  #解壓安裝包
    cd redis-3.2.8
    
    make   /#編譯c源碼(需要先安裝gcc編譯器)
    make PREFIX=/usr/local/redis install   #安裝到指定目錄下,一般Linux的軟件習慣裝載/usr/local下面
    
    cp redis.conf /usr/local/redis/ #複製解壓目錄下的配置文件到redis安裝目錄
    bin/redis-server redis.conf   #啓動redis服務並指定配置文件
    ./redis-cli  #新開一個窗口並啓動客戶端
  3. 如果是遠程主機連接的話

    redis-cli -h host -p port -a password

    將redis啓動爲後臺服務(設置redis.conf並修改daemonize的值)

    daemonize yes          #設置爲後天進程,默認爲no

基本數據類型的操作

  • 字符串操作(詳細操作可以參考官方文檔或者教程

    Redis字符串命令用於管理Redis中的字符串值。以下是使用Redis字符串命令的基本語法:

    SET mykey "redis"      #設置key-value對
    ex:
    SET key value         #   此命令設置指定鍵的值。
    GET key                   #   獲取指定鍵的值。
    GETRANGE key start end    #   獲取存儲在鍵上的字符串的子字符串。
    GETSET key value      #   設置鍵的字符串值並返回其舊值。

  • List操作(可以存在相同元素,如果需要不能存在相同元素則可以使用Set操作)

    在Redis中,List類型是按照插入順序排序的字符串鏈表。和數據結構中的普通鏈表一樣,我們可以在其頭部(left)和尾部(right)添加新的元素。在插入時,如果該鍵並不存在,Redis將爲該鍵創建一個新的鏈表。與此相反,如果鏈表中所有的元素均被移除,那麼該鍵也將會被從數據庫中刪除。

    lpush list1 "forever"  #向list1中加入
    lpush list1 "cll"  #向list1中加入
    lpush list1 "wifi"  #向list1中加入
    LLEN key  #獲取列表的長度
    LPOP key  #刪除並獲取列表中的第一個元素
    LPUSH key value1 [value2] #將一個或多個值添加到列表
    LPUSHX key value      #僅當列表存在時,才向列表添加值
    LRANGE key start stop #從列表中獲取一系列元素
    LREM key count value  #從列表中刪除元素
  • Hash操作

    Redis Hashes是字符串字段和字符串值之間的映射。 因此,它們是表示對象的完美數據類型。在Redis中,每個哈希(散列)可以存儲多達4億個鍵-值對。

    hset map1  name zs  #向map1的hash表中加入key-value
    HDEL key field2 [field2]  #刪除一個或多個哈希字段。
    HEXISTS key field         #判斷是否存在散列字段。
    HGET key field                #獲取存儲在指定鍵的哈希字段的值。
    HGETALL key                   #獲取存儲在指定鍵的哈希中的所有字段和值
  • Set操作

    Redis集合是唯一字符串的無序集合。 唯一值表示集合中不允許鍵中有重複的數據。在Redis中設置添加,刪除和測試成員的存在(恆定時間O(1),而不考慮集合中包含的元素數量)。列表的最大長度爲2^32 - 1個元素

    SADD myset "redis" #添加到set
    SMEMBERS "myset"   #獲取myset所有元素
    SCARD key                         #獲取集合中的成員數
    SDIFF key1 [key2]                 #   減去多個集合
    SDIFFSTORE destination key1 [key2]    #   減去多個集並將結果集存儲在鍵中
    SINTER key1 [key2]                    #   相交多個集合
    SINTERSTORE destination key1 [key2]   #       交叉多個集合並將結果集存儲在鍵中
    SISMEMBER key member              #   判斷確定給定值是否是集合的成員
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章