日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis 05_List列表 数组 Hash散列

發布時間:2024/2/28 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis 05_List列表 数组 Hash散列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

First:

  • 基于Linked List實現
  • 元素是字符串類型
  • 列表頭尾增刪快,中間增刪慢,增刪元素是常態
  • 元素可以重復出現
  • 最多包含2^32-1元素

  • 列表的索引
  • 從左至右,從0開始
  • 從右至左,從-1開始

list:

  • 隊列:L/R ?R/L
  • 棧: L/L ? R/R
  • 數組:LINDEX LSET
  • 阻塞:BL BR?

命令:

命令說明 block 塊,阻塞 left 左 right 右 exist 存在 ------------------------------------------- 左右或者頭尾壓入元素 string set key “abc” LPUSH key value [value ...] LPUSHX key value RPUSH key value [value ...] RPUSHX key value ------------------------------------------- 左右或者頭尾彈出元素 LPOP key RPOP key ------------------------------------------- 從一個列表尾部彈出元素壓入到另一個列表的頭部 string getset RPOPLPUSH source destination ------------------------------------------- 返回列表中指定范圍元素 LRANGE key start stop LRANGE key 0 -1 表示返回所有元素 show ------------------------------------------- 獲取指定位置的元素 LINDEX key index ------------------------------------------- 設置指定位置元素的值 LSET key index value ------------------------------------------- 列表長度,元素個數 string strlen LLEN key LRANGE KEY 0 -1

?

去除指定范圍 外 元素 LTRIM key start stop ------------------------------ 舉例 RPUSH listkey c abc c ab 123 ab bj ab redis list LTRIM listkey 0 -1 LTRIM listkey 1 -1 LTRIM listkey 1 10000 ------------------------------ 微博的評論最后500條:蓋樓 lpush u1234:forumid:comments comments LTRIM u1234:forumid:comments 0 499 ------------------------------ 在列表中某個存在的值(pivot)前或后插入元素 LINSERT key BEFORE|AFTER pivot value key和pivot不存在,不進行任何操作 ------------------------------ 舉例 RPUSH lst Clojure C Lua LINSERT lst AFTER C PythonLINSERT lst BEFORE C Ruby

Hash散列

?

設置單個字段 HSET key field value HSETNX key field valuekey的filed不存在的情況下執行,key不存在直接創建 ------------------------------------------------ 設置多個字段 HMSET key field value [field value ...] ------------------------------------------------ 返回字段個數 HLEN key ------------------------------------------------ 判斷字段是否存在 HEXISTS key field key或者field不存在,返回0 ------------------------------------------------ 返回字段值 HGET key field ------------------------------------------------ 返回多個字段值 HMGET key field [field ...] ------------------------------------------------ 返回所有的鍵值對 HGETALL key ------------------------------------------------ 返回所有字段名 HKEYS key ------------------------------------------------ 返回所有值 HVALS key ------------------------------------------------ 在字段對應的值上進行整數的增量計算 HINCRBY key field increment ------------------------------------------------ 在字段對應的值上進行浮點數的增量計算 HINCRBYFLOAT key field increment ------------------------------------------------ 刪除指定的字段 HDEL key field [field ...] ------------------------------------------------ 舉例 HINCRBY numbers x 100 HINCRBY numbers x -50 HINCRBYFLOAT numbers x 3.14 HDEL numbers x

?Hash用途:

1、節約內存空間 2、每創建一個鍵,它都會為這個鍵儲存一些附加的管理信息(比如這個鍵的類型,這個鍵最后一次被訪問的時間等等) 3、所以數據庫里面的鍵越多,redis數據庫服務器在儲存附加管理信息方面耗費的內存就越多,花在管理數據庫鍵上的CPU也會越多在字段對應的值上進行浮點數的增量計算

?不適合hash的情況 :

  • 使用二進制位操作命令:因為Redis目前支持對字符串鍵進行SETBIT、GETBIT、BITOP等操作,如果你想使用這些操作,那么只能使用字符串鍵,雖然散列也能保存二進制數據
  • 使用過期鍵功能:Redis的鍵過期功能目前只能對鍵進行過期操作,而不能對散列的字段進行過期操作,因此如果你要對鍵值對數據使用過期功能的話,那么只能把鍵值對儲存在字符串里面

Hash散列案例:

?

微博的好友關注:獲取關注微博的好友的列表 用戶ID為key,Field為好友ID,Value為關注時間 user:1000 user:606 20150808 xz pl 2011 zs 1949 用戶維度統計 統計數包括:關注數、粉絲數、喜歡商品數、發帖數 用戶為Key,不同維度為Field,Value為統計數 比如關注了5人 HSET user:100000 follow 5 HINCRBY user:100000 follow 1

?

總結

以上是生活随笔為你收集整理的Redis 05_List列表 数组 Hash散列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。