redis基本操作

jopen 8年前發布 | 10K 次閱讀 Redis NoSQL數據庫

  • redis安裝簡單說明

    cd redis-3.0.0

    make

    cd src

    make install

    mkdir -p /usr/local/redis/bin/ /usr/local/redis/etc #把所有命令移動到bin,把配置文件移動到etc下


  • redis介紹

    鍵值存儲,它是數據結構服務器:字符串string,hash,鏈表list,集合set和有序集合zset。支持push,pop和add,remove。為了保證效率,都是存儲在內存中。周期性把數據更新到磁盤中,或者記錄到log里面,類似于mysql的binlog。


  • redis適用場合

    1: 應用程序直接redis數據庫。應用程序直接向redis讀寫操作。

    2: 應用程序直接訪問redis,如果失敗,訪問mysql。redis的數據和mysql數據進行同步。

    適用操作:

    1: 取最新的N個數據

    2: 排行榜應用top n

    3: 精確設置過期時間的應用、針對鍵來設置過期

    4: 計數器

    5: uniq操作

    6: pub/sub構建實時消息

    7: 隊列系統

    8: 緩存


  • redis String操作

    String是redis最簡單的數據類型,可以存放圖像(二進制)和對象(序列化)。下面是一些string的操作:

    set name helloworld #設置name鍵

    get name #獲取name值

    mset key1 test1 key2 test2 #設置多個值

    strlen name #查看長度


  • redis hash操作

    hset user:001 name helloworld #設置user:001的name字段

    hget user:001 name #獲取user:001的name值

    hmset user:002 name helloworld age 20 #批量設置

    hmget user:002 name age #批量獲取

    hkeys user:002 #獲取user:002的所有鍵

    hvals user:002 #獲取user:002的所有值

    hgetall user:002 #獲取user:002的所有鍵值


  • redis list(雙向鏈表)

    lpush list1 hello #從list1頭壓入hello

    lpush list1 world #從list1頭壓入world

    lrange list1 0 -1 #取出list1的,先取出world  再取出hello。棧

    rpush list2 hello #從list2尾壓入hello

    rpush list2 world #從list2尾壓入world

    lrange list2 0 -1 #取出list2,先hello, 后world。隊列

    llen list2 #返回鏈表中的元素。


  • redis set(無序集合)

    sadd set2 one #向集合set2添加one

    smembers set2 #查看集合set2里面的元素

    scard set3 #返回set3中有幾個元素


  • redis zset(有序集合)

    zadd zset1 1 one #向zset1添加one,順序號為1

    zrange zset1 0 -1 withscores #查看zset3中的值和順序號

    zcard zset3 #返回zset3元素的個數


  • redis日常操作命令

    select 1 #選擇數據庫,默認是0

    keys * #

    keys * #取出所有key

    keys my* #模糊匹配

    quit exit #退出客戶端

    dbsize #返回key的數量 select 0, 1, 15試下

    info #查看redis信息

    config get * #獲取配置的設置

    flushdb #清空當前數據庫

    flushall #清空所有數據庫


  • redis密碼設置

    配置文件:requirepass helloworld  添加這個配置項

    怎么驗證密碼: redis-cli -a helloworld ,或者先用redis-cli登錄后再auth helloworld驗證。

    從服務器怎么設置主服務器的密碼驗證:masterauth helloworld


  • slave主從配置

    一個master可以擁有多個slave,多個slave跟master都相連。重要:slave也可以跟slave相連。

    主從復制master將數據庫快照并發送給slave。

     

    從服務器的配置:

    slaveof 172.16.0.4 6379

    masterauth helloworld #如果需要配置密碼,則配置masterauth

    info可以查一下主從復制信息


  • redis的事務

    multi #進入事務的上下文

    set age 10 #會放到隊列里面

    set age 20 #還會放隊列

    exec #然后執行事務

    discard #不執行事務,事務回滾


  • redis持久化

    1: snapshotting(快照,將數據存在文件里面) 默認方式,二進制方式

    2: append-only(將操作存在文件里面)

     

    數據持久化:n秒內如果有m個key修改,則保存。

    save 900 1  #如果在900s有1個key被修改,則保存

    save 300 10 #如果300s內有10key被修改,則保存

    save 60 10000 #如果60s內有10000個key被修改,則保存

     

    操作持久化:每次操作都寫到文件中。重啟時候,重新執行一次aof文件即可。由于系統還可能存在緩存。

    appendonly yes #啟用操作持久化

    appendfsync always #每次都寫

    appendfsync everysec #每1s

    appendfsync no #隨著系統


  • redis訂閱與發布

    SUBSCRIBE tv1 tv2 #定閱tv1 tv2頻道

    publish tv1 test #向tv1發送數據

來自: http://my.oschina.net/zhuangweihong/blog/593614

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!