redis學習筆記---redis特性(expire、事務、數據排序、config命令)

1、鍵的生存時間expire
    redis可使用expire命令設置一個鍵的生存時間,到時間後redis會自動刪除它
    命令:
   ① expire    設置生存時間(單位/秒) expire a 10
 ②pexpire    設置生存時間(單位/毫秒)
 ③ttl/pttl    查看鍵的剩餘生存時間      ttl a
 ④persist    取消生存時間
 ⑤expireat [key] unix時間戳1351858600
 ⑥pexpireat [key] unix時間戳(毫秒)1351858700000
    應用場景:
   ① 限時的優惠活動信息
 ②網站數據緩存(對於一些須要定時更新的數據,例如:積分排行榜)
 ③限制網站訪客訪問頻率(例如:1分鐘最多訪問10次)
2、redis的事務(transaction)
    redis事務是一組命令的集合,事務和命令同樣是執行的的最小單元,一個事務的命令的集合要命都執行,要命都不執行;redis事務實現原理是先將命令進行緩存,而後再讓redis按照順序執行這些命令。
    注意:redis的事務是不支持回滾的,一旦失敗就必須從新執行事務命令的集合,也正由於redis事務不支持回滾才使得redis的事務能夠保持簡潔和快速。在十五執行過程當中可使用watch名流那個對指定的鍵的狀態進行監控;
     監控一個或者多個鍵,當被監控的鍵值被修改後阻止以後的一個事務的執行 可是不能保證其它客戶端不修改這一鍵值,因此咱們須要在事務執行失敗後從新執行事務中的命令。
  注意: 執行完事務的exec命令以後,watch就會取消對全部鍵值的監控
    命令:
     multi    事務開始
  .....
  exec    事務結束,開始執行事務中的命令
  discard    放棄事務
    錯誤處理:
     1:語法錯誤:致命的錯誤,事務中的全部命令都不會執行
  2:運行錯誤:不會影響事務中其餘命令的執行
    應用場景:
  一組命令必須同時都執行,或者都不執行。
  咱們想要保證一組命令在執行的過程之中不被其它命令插入。
3、數據的排序(sort)
  sort命令能夠對列表類型,集合類型和有序集合類型,進行排序。
 命令:
 sort key [desc] [limit offset count]
    sort list desc
    sort list limit 0 2 排序,從0開始取2條數據
    sort list store tmp_list 排序後保存到tmplist裏面
    以上是對數字的排序
    對字符排序以下:
    sort list alpha      按照字典排序
    by 參考鍵(參考鍵能夠是字符串類型或者是hash類型的某個字段,hash類型的格式爲:鍵名->字段名)
    若是參考鍵中不帶*號則不排序
    若是某個元素的參考鍵不存在,則默認參考鍵的值爲0
    舉例:
    list(1,2,3,4)
    set score:1 20 score:2 68 score:3 56 score:4 88
    sort list by score:*
    
    lpush list 2 1 4 3
    hmset post:1 title one time 13332190
     hmset post:2 title two time 13332190
     hmset post:3 title three time 13332190
     hmset post:4 title four time 13332190

    sort list by post:*->time desc 根據時間排序
     sort list by post:*->time get post:*->title get post:*->time  get # 連同排序字段也返回
  擴展 get參數(上面已經用過了)
  get參數的規則和by參數的規則同樣
  get # (返回元素自己的值)
  擴展 store參數
  使用store 參數能夠把sort的排序結果保存到指定的列表中
  性能優化
  1:儘量減小待排序鍵中元素的數量
  2:使用limit參數只獲取須要的數據
  3:若是要排序的數據數量很大,儘量使用store參數將結果緩存。
4、redis中的config命令
     使用config set能夠動態設置參數信息,服務器重啓以後就失效了。
  config set appendonly yes
  config set save "90 1 30 10 60 100"
  使用config get能夠查看全部可使用config set命令設置的參數
  config get *
  使用config rewrite命令對啓動 Redis 服務器時所指定的 redis.conf 文件進行改寫(Redis 2.8 及以上版本纔可使用),主要是 把使用config set動態指定的命令保存到配置文件中。
  config rewrite
  注意:config rewrite命令對 redis.conf 文件的重寫是原子性的, 而且是一致的: 若是重寫出錯或重寫期間服務器崩潰, 那麼重寫失敗, 原有 redis.conf 文件不會被修改。 若是重寫成功, 那麼 redis.conf 文件爲重寫後的新文件。
相關文章
相關標籤/搜索