C# 通過ServiceStack 操作Redis——Set型別的使用及示例

明志德道發表於2021-03-14

ServiceStack 程式集裡面沒有方法註解,我在這裡將註解新增上去,有不當之處,歡迎指正

                Console.WriteLine("---Set型別---");
                //新增  setId集合中新增item值        
                client.AddItemToSet(setId, item);
                //setId集合中新增多個item
                client.AddRangeToSet(setId,items);
                //獲取  隨機獲取setId集合中的一個值
                client.GetRandomItemFromSet(setId);
                //獲取setId集合值的數量
                client.GetSetCount(setId);
               // 獲取setId集合中所有的值
                client.GetAllItemsFromSet(setId);
                // 隨機刪除setId集合中的一個值
                client.PopItemFromSet(setId);
                // 刪除setId集合中的item
                client.RemoveItemFromSet(setId, item);
                //從fromSetId集合中移除值為item的值,並把item新增到toSetId集合中
                client.MoveBetweenSets(fromSetId, toSetId, item);
                //返回多個setId集合中的並集,返還hashset
                client.GetUnionFromSets(setIds);
                //返回多個setId集合中的交集,返還hashset
                client.GetIntersectFromSets(setIds);
                //返回fromSetId 與多個withSetId集合中的差集,返還hashset
                client.GetDifferencesFromSet(fromSetId, withSetIds);
                // 多個setId集合中的並集,放入intoSetId集合中
                client.StoreUnionFromSets(intoSetId, setIds);
                //把fromSetId集合中的資料與withSetIds集合中的資料對比,fromSetId集合中不存在keys集合中,則把這些不存在的資料放入intoSetId集合中
                client.StoreDifferencesFromSet(intoSetId, fromSetId, withSetIds);
 

下面是資料輸入

                //1.新增,value不重複,新增多個Marren1也只有一個
                //單個新增   關注劉備的使用者
                client.AddItemToSet("劉備", "小1");
                client.AddItemToSet("劉備", "小2");
                client.AddItemToSet("劉備", "小2");
                client.AddItemToSet("劉備", "小3");
                client.AddItemToSet("劉備", "小3");
                client.AddItemToSet("劉備", "小3");
                client.AddItemToSet("劉備", "小4");
                client.AddItemToSet("劉備", "小5");
                client.AddItemToSet("劉備", "小6");
                client.AddItemToSet("劉備", "小7");
                client.AddItemToSet("劉備", "小8");
                client.AddItemToSet("劉備", "小8");
                //2.獲取setId集合的數量
                long count1= client.GetSetCount("劉備");
                //3.判斷setId中是否包含指定值
                bool b1=client.SetContainsItem("劉備", "小5");
                //4.隨機獲取setId集合中的一個值
                string value1=client.GetRandomItemFromSet("劉備");
                //5.獲取setId中的所有值
                HashSet<string> user1= client.GetAllItemsFromSet("劉備");

效果圖

 

 刪除幾條資料

                //6. 刪除setId中指定value
                client.RemoveItemFromSet("劉備", "小6");
                //7. 隨機刪除setId集合中的一個值,並返回該值
                string value2=client.PopItemFromSet("劉備");
                // 隨機刪除setId集合中的2個值,並返回這2個值
                List<string> value3 = client.PopItemsFromSet("劉備", 2);

 

 再新增一個集合 “張飛”

                //多新增 關注張飛的使用者
                List<string> items = new List<string>() { "小1", "小12", "小3", "小3", "小3", "小14", "小5" , "小16", "小7", "小8", "小18" };
                client.AddRangeToSet("張飛", items);
                HashSet<string> user2 = client.GetAllItemsFromSet("張飛");

 下面就是集合一些操作:交、並、差、補

                //獲取交集
                HashSet<string> data1=client.GetIntersectFromSets("劉備", "張飛");
                //獲取並集
                HashSet<string> data2 = client.GetUnionFromSets("劉備", "張飛");
                //獲取差集
                HashSet<string> data3 = client.GetDifferencesFromSet("劉備","張飛");
                //補集
                 client.StoreDifferencesFromSet("關羽", "劉備", "張飛");
                HashSet<string> data4 = client.GetAllItemsFromSet("關羽");

 

 

相關文章