c# StackExchange.Redis常用API

String 字符串

StringSet:
1.設置一個String值
2.設置多個String值,要麼都設置成功,要麼都失敗! 非常有用

StringSetRange:
1.從偏移量offset 開始 使用 value 填充。 如果原來的長度小於offset 中間使用’\0’字符填充(注意,c# 使用 '\0’字符結尾,這種情況導致替換後的字符根本無法顯示出來。) 返回值是替換後的字符串長度
例:
redis中有 key=“a” Value = “111111”;

StringSetRange(“a”,1,“222”) 返回值爲 6, 修改後的字符串爲 “122211”。
StringSetRange(“a”,10,“222”) 返回值爲13,修改後的字符串爲"111111\0\0\0\0222",但是c# 只能展示 “111111”,後面無法顯示。要注意。

StringGet:
1.獲取一個String的值
2.獲取多個String的值

StringGetRange:
1.獲取字符串的一個範圍 第start位到第end位

StringGetWithExpiry:
1.獲取字符串的值以及key的剩餘的過期時間

StringGetSet:
1.獲取原來的String值 並用新值替換

StringAppend:
1.字符串追加,返回追加後的字符串長度。

StringLength:
1.獲取字符串的長度

StringIncrement:
1.字符串爲一個數值的,使用此函數可以做加法運算,如果存儲的不是一個數值,將會引發錯誤。
返回增加後的數值

StringDecrement:
1.同上,此函數做減法運算

StringGetBit:
1.獲取某位二進制是不是1

StringBitCount:
1.設置某位二進制 ,返回二進制中原來的值

StringSetBit:
1.獲取範圍中二進制 出現 1的次數

StringBitOperation:
1.first 與 second 中的值做位運算,運算結果保存在 destination中,返回destination的字符串長度
2.一堆key 中做位運算,運算結果保存在destination中沒,返回destination的字符串長度

StringBitPosition:
獲取二進制中第一次出現1或0的位置

Hash 鍵值對
HashSet:
1.設置hash 鍵值對,When只能使用的 NotExists 以及 Always, Exists 不可使用,他表示的是hash的鍵,而非redis的key。要注意!!!
2.設置一堆鍵值對。

HashGet:
1.獲取hash的某個值
2.獲取hash的某些值

HashKeys:
1.獲取hash的所有key

HashValues:
1.獲取hash的所有值

HashLength:
1.獲取hash的鍵值對數量

HashIncrement:
1.Hash中的某值作加法運算

HashDecrement:
1.Hash中的值作減法運算

HashExists:
1.某鍵值對存在不存在

HashGetAll:
1.獲取所有的鍵值對

HashDelete:
1.刪除某個鍵
2.刪除 一些鍵

HashScan:
查詢Hash中的鍵值對。

HashScan:
查詢Hash中的鍵值對,這裏的pagesize 不太清楚。

List 列表
ListLeftPush:
1.從列表的左側插入值 When只能使用Always 以及 Exist 表示的是redis的Key存在不在 而非元素,返回列表中的元素個數。
2.從列表的左側插入一堆值 從數組的第一個開始

ListRightPush:
1.從列表的右側插入值 When只能使用Always 以及 Exist 表示的是redis的Key存在不在 而非元素,返回列表中的
2.從列表的右側插入一堆值 從數組的第一個開始

ListLeftPop:
1.從列表的左側取出一個值

ListRightPop:
1.從列表的右側取出一個值

ListRightPopLeftPush:
1.source列表的右側取出值並把值插入到destination的左側,該操作爲原子操作

ListRemove:
1.刪除列表中的一個元素,可設置要刪除的數量 返回刪除的數量

ListRange:
1.取出列表中的值從Start 到End End=-1表示全部取出

ListLength:
1.列表中的元素個數

ListGetByIndex:
1.獲取列表中某個位置的元素

ListSetByIndex
1.設置列表中某個位置的元素

ListInsertAfter:
1.在pivot 元素的後面插入一個元素 value 插入成功返回的列表總長度,插入失敗返回-1

ListInsertBefore:
1.在pivot 元素前面插入一個元素 value 插入成功返回列表總長度,插入失敗返回-1

ListTrim:
1.按指定範圍裁剪列表

左邊插入,右邊取出即可實現隊列
右邊插入,右邊取出即可實現棧

Set 集合 集合中的值沒有相同的
SetAdd:
1.向集合中添加一個元素。返回是否添加成功
2.向集合中添加一堆元素。 返回添加成功的個數

SetPop: 會刪除集合中的元素
1.從集合中隨機取出一個元素
2.從集合中取出 count 個元素

SetRandomMember: 不刪除集合中的元素
1.從集合中隨機返回一個元素

SetRandomMembers:
1.從集合中隨機返回count的元素

SetRemove:
1.從集合中移除指定的元素 返回是否移除成功
2.從集合中移除一堆元素 返回移除元素的個數

SetScan:
1.模糊查找集合中的元素

SetMembers:
1.返回集合中的所有元素

SetMove:
1.把一個元素從source集合中移動到 destination集合中 返回是否移動成功
當destination 中已存在元素,僅從 source中刪除元素

SetLength:
1.返回集合中元素的個數

SetContains:
1.判斷集合中是否存在元素

SetCombine:

  1. 兩集合 交集/並集/差集。操作
  2. 多集合 交集/並集/差集。操作

SetCombineAndStore:
1.兩集合 交集/並集/差集。 操作結果保存在 destination 返回受影響的個數
2.多集合 交集/並集/差集。操作結果保存在 destination 返回受影響的個數

Sorted Set 有序集合
SortedSetAdd:
1.添加一個元素到有序集合中,如果集合中存在 則會修改其對應的分值 返回是否添加成功 此處的 When 表示的是有序集合的元素 而非 redis的key
2.添加多個元素到有序集合中,返回添加的個數

SortedSetScore:
1.返回有序集合中的元素的分值

SortedSetRemove:
1.移除有序集合中的一個元素 返回是否移除成功
2.移除有序集合中的多個元素 返回移除的個數

SortedSetRemoveRangeByRank:
1.移除有序集合中的按索引排序的第Start 到 第Stop個

SortedSetRemoveRangeByScore:
1.移除有序集合中的按分值排序的第Start 到 第Stop個

SortedSetRemoveRangeByValue:
1.移除有序集合中的按值排序的第Start 到 第Stop個

SortedSetLength:
1.返回有序集合中分值min 到 max的元素個數 默認是包含兩者 Exclude.Both 排除兩者 Exclude.Start 排除 min
Exclude.Stop 排除 max。

SortedSetLengthByValue:
1.返回有序集合中元素值min 到 max 的元素個數 默認是包含兩者 Exclude.Both 排除兩者 Exclude.Start 排除 min Exclude.Stop 排除 max。

SortedSetRangeByRank:
1.返回有序集合按索引 升序/降序 第Start個到 Stop個元素

SortedSetRangeByRankWithScores:
1.與上者相同 只是返回的不僅包含 元素 而且有元素對應的分值

SortedSetRangeByScore:
1.返回有序集合按分值 升序/降序 第Start 到 Stop 個元素

SortedSetRangeByScoreWithScores:
1.與上者相同 只是返回的不僅包含 元素 而且有元素對應的分值

SortedSetRangeByValue:
1.返回有序集合按元素值 升序/降序 第Start 到 Stop 個元素

SortedSetScan:
1.模糊查找有序集合中的一個元素

SortedSetIncrement:
1.對有序集合中的某個元素增加一個分值,如果元素不存在 則會添加 將要增加的分值作爲其分值

SortedSetDecrement:
1.對有序集合中的某個元素減少一個分值,如果元素不存在 則會添加 將要減少的分值作爲其分值

SortedSetCombineAndStore:
1.對兩個有序集合 交集/並集/差集 。Aggregate 指示合集後的 分值 取最小 最大 還是求和
2.對多個有序集合 交集/並集/差集

很適合用來做排行榜

其他函數

HyperLogLog 暫時還不知道其用處,下次再補!

GEO 暫時還不知道其用處,下次再補!

Key 鍵操作
KeyExists:
1.返回鍵是否存在

KeyExpire:
1.設置key的過期時間 返回key 是否存在

KeyDelete:
1.刪除一個key
2.刪除一些key

KeyRename:
1.從key 重命名 如果 key 不存在 或者要重命名的已經存在 則會引發錯誤

KeyRandom:
1.隨機取一個key

KeyType:
1.返回key 中存儲的數據類型 不存在返回RedisType.None

KeyTimeToLive:
1.返回Key的剩餘過期時間

KeyDump:
1.把某個 key 中的值序列化成 byte[]數組

KeyRestore:
1.把 keyDump 命令中序列化的值 反序列化保存在key中

KeyMove:
1.把key 從此庫移動到另一個庫

KeyMigrate
1.把key 從本 redis 實例移動到另一個redis實例

KeyPersist
1.移除Key的生存時間

lock 分佈式鎖
LockTake:
1.獲取一把分佈式鎖, 獲取到返回true 沒獲取到返回false

LockExtend:
1.爲分佈式續航, 如果續航成功返回true 續航失敗返回false

LockQuery:
1.獲取分佈式鎖中的value

LockRelease:
1.釋放分佈式鎖

分佈式鎖循環調用 LockTake 直到返回true 設置一個過期時間,是爲了宕機保護,
開啓子線程去調用LockExtend 爲分佈式續航,true 就繼續續航 false 不再執行
執行完代碼後 使用 LockRelease 釋放掉分佈式鎖。

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