时间:2021-07-01 10:21:17 帮助过:10人阅读
View Code
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> redis配置文件信息
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 也可以放到配置文件去
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">sealed</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> RedisConfigInfo
- {
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 可写的Redis链接地址
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> format:ip1,ip2
- </span><span style="color: #808080;">///</span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 默认6379端口
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> WriteServerList = <span style="color: #800000;">"</span><span style="color: #800000;">127.0.0.1:6379</span><span style="color: #800000;">"</span><span style="color: #000000;">;
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 可读的Redis链接地址
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> format:ip1,ip2
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> ReadServerList = <span style="color: #800000;">"</span><span style="color: #800000;">127.0.0.1:6379</span><span style="color: #800000;">"</span><span style="color: #000000;">;
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 最大写链接数
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> MaxWritePoolSize = <span style="color: #800080;">60</span><span style="color: #000000;">;
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 最大读链接数
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> MaxReadPoolSize = <span style="color: #800080;">60</span><span style="color: #000000;">;
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 本地缓存到期时间,单位:秒
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> LocalCacheTime = <span style="color: #800080;">180</span><span style="color: #000000;">;
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 自动重启
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> AutoStart = <span style="color: #0000ff;">true</span><span style="color: #000000;">;
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 是否记录日志,该设置仅用于排查redis运行时出现的问题,
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 如redis工作正常,请关闭该项
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> RecordeLog = <span style="color: #0000ff;">false</span><span style="color: #000000;">;
- }</span>
View Code
- <span style="color: #008080;"> 1</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #008080;"> 2</span> <span style="color: #808080;">///</span><span style="color: #008000;"> RedisBase类,是redis操作的基类,继承自IDisposable接口,主要用于释放内存
- </span><span style="color: #008080;"> 3</span> <span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #008080;"> 4</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> RedisBase : IDisposable
- </span><span style="color: #008080;"> 5</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">public</span> IRedisClient iClient { <span style="color: #0000ff;">get</span>; <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">set</span><span style="color: #000000;">; }
- </span><span style="color: #008080;"> 7</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #008080;"> 8</span> <span style="color: #808080;">///</span><span style="color: #008000;"> 构造时完成链接的打开
- </span><span style="color: #008080;"> 9</span> <span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #008080;">10</span> <span style="color: #0000ff;">public</span><span style="color: #000000;"> RedisBase()
- </span><span style="color: #008080;">11</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">12</span> iClient =<span style="color: #000000;"> RedisManager.GetClient();
- </span><span style="color: #008080;">13</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">14</span>
- <span style="color: #008080;">15</span> <span style="color: #008000;">//</span><span style="color: #008000;">public static IRedisClient iClient { get; private set; }
- </span><span style="color: #008080;">16</span> <span style="color: #008000;">//</span><span style="color: #008000;">static RedisBase()
- </span><span style="color: #008080;">17</span> <span style="color: #008000;">//</span><span style="color: #008000;">{
- </span><span style="color: #008080;">18</span> <span style="color: #008000;">//</span><span style="color: #008000;"> iClient = RedisManager.GetClient();
- </span><span style="color: #008080;">19</span> <span style="color: #008000;">//</span><span style="color: #008000;">}</span>
- <span style="color: #008080;">20</span>
- <span style="color: #008080;">21</span>
- <span style="color: #008080;">22</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">bool</span> _disposed = <span style="color: #0000ff;">false</span><span style="color: #000000;">;
- </span><span style="color: #008080;">23</span> <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">void</span> Dispose(<span style="color: #0000ff;">bool</span><span style="color: #000000;"> disposing)
- </span><span style="color: #008080;">24</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">25</span> <span style="color: #0000ff;">if</span> (!<span style="color: #0000ff;">this</span><span style="color: #000000;">._disposed)
- </span><span style="color: #008080;">26</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">27</span> <span style="color: #0000ff;">if</span><span style="color: #000000;"> (disposing)
- </span><span style="color: #008080;">28</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">29</span> <span style="color: #000000;"> iClient.Dispose();
- </span><span style="color: #008080;">30</span> iClient = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
- </span><span style="color: #008080;">31</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">32</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">33</span> <span style="color: #0000ff;">this</span>._disposed = <span style="color: #0000ff;">true</span><span style="color: #000000;">;
- </span><span style="color: #008080;">34</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">35</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Dispose()
- </span><span style="color: #008080;">36</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">37</span> Dispose(<span style="color: #0000ff;">true</span><span style="color: #000000;">);
- </span><span style="color: #008080;">38</span> GC.SuppressFinalize(<span style="color: #0000ff;">this</span><span style="color: #000000;">);
- </span><span style="color: #008080;">39</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">40</span>
- <span style="color: #008080;">41</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Transcation()
- </span><span style="color: #008080;">42</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">43</span> <span style="color: #0000ff;">using</span> (IRedisTransaction irt = <span style="color: #0000ff;">this</span><span style="color: #000000;">.iClient.CreateTransaction())
- </span><span style="color: #008080;">44</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">45</span> <span style="color: #0000ff;">try</span>
- <span style="color: #008080;">46</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">47</span> irt.QueueCommand(r => r.Set(<span style="color: #800000;">"</span><span style="color: #800000;">key</span><span style="color: #800000;">"</span>, <span style="color: #800080;">20</span><span style="color: #000000;">));
- </span><span style="color: #008080;">48</span> irt.QueueCommand(r => r.Increment(<span style="color: #800000;">"</span><span style="color: #800000;">key</span><span style="color: #800000;">"</span>, <span style="color: #800080;">1</span><span style="color: #000000;">));
- </span><span style="color: #008080;">49</span> irt.Commit(); <span style="color: #008000;">//</span><span style="color: #008000;"> 提交事务</span>
- <span style="color: #008080;">50</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">51</span> <span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception ex)
- </span><span style="color: #008080;">52</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">53</span> <span style="color: #000000;"> irt.Rollback();
- </span><span style="color: #008080;">54</span> <span style="color: #0000ff;">throw</span><span style="color: #000000;"> ex;
- </span><span style="color: #008080;">55</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">56</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">57</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">58</span>
- <span style="color: #008080;">59</span>
- <span style="color: #008080;">60</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #008080;">61</span> <span style="color: #808080;">///</span><span style="color: #008000;"> 清除全部数据 请小心
- </span><span style="color: #008080;">62</span> <span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #008080;">63</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> FlushAll()
- </span><span style="color: #008080;">64</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">65</span> <span style="color: #000000;"> iClient.FlushAll();
- </span><span style="color: #008080;">66</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">67</span>
- <span style="color: #008080;">68</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #008080;">69</span> <span style="color: #808080;">///</span><span style="color: #008000;"> 保存数据DB文件到硬盘
- </span><span style="color: #008080;">70</span> <span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #008080;">71</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Save()
- </span><span style="color: #008080;">72</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">73</span> iClient.Save();<span style="color: #008000;">//</span><span style="color: #008000;">阻塞式save</span>
- <span style="color: #008080;">74</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">75</span>
- <span style="color: #008080;">76</span> <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #008080;">77</span> <span style="color: #808080;">///</span><span style="color: #008000;"> 异步保存数据DB文件到硬盘
- </span><span style="color: #008080;">78</span> <span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #008080;">79</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> SaveAsync()
- </span><span style="color: #008080;">80</span> <span style="color: #000000;"> {
- </span><span style="color: #008080;">81</span> iClient.SaveAsync();<span style="color: #008000;">//</span><span style="color: #008000;">异步save</span>
- <span style="color: #008080;">82</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">83</span> }
View Code
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> key-value 键值对:value可以是序列化的数据
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> RedisStringService : RedisBase
- {
- </span><span style="color: #0000ff;">#region</span> 赋值
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 设置key的value
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> Set<T>(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key, T value)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span>.iClient.Set<T><span style="color: #000000;">(key, value);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 设置key的value并设置过期时间
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> Set<T>(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key, T value, DateTime dt)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span>.iClient.Set<T><span style="color: #000000;">(key, value, dt);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 设置key的value并设置过期时间
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> Set<T>(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key, T value, TimeSpan sp)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span>.iClient.Set<T><span style="color: #000000;">(key, value, sp);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 设置多个key/value
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> Set(Dictionary<<span style="color: #0000ff;">string</span>, <span style="color: #0000ff;">string</span>><span style="color: #000000;"> dic)
- {
- </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.SetAll(dic);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 追加
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 在原有key的value值之后追加value,没有就新增一项
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> Append(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span><span style="color: #000000;"> value)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.AppendToValue(key, value);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 获取值
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取key的value值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Get(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetValue(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取多个key的value值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> List<<span style="color: #0000ff;">string</span>> Get(List<<span style="color: #0000ff;">string</span>><span style="color: #000000;"> keys)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetValues(keys);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取多个key的value值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> List<T> Get<T>(List<<span style="color: #0000ff;">string</span>><span style="color: #000000;"> keys)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span>.iClient.GetValues<T><span style="color: #000000;">(keys);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 获取旧值赋上新值
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取旧值赋上新值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> GetAndSetValue(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span><span style="color: #000000;"> value)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetAndSetValue(key, value);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 辅助方法
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取值的长度
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> GetLength(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetStringCount(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 自增1,返回自增后的值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> Incr(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.IncrementValue(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 自增count,返回自增后的值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> IncrBy(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">int</span><span style="color: #000000;"> count)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.IncrementValueBy(key, count);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 自减1,返回自减后的值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> Decr(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.DecrementValue(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 自减count ,返回自减后的值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="key"></param></span>
- <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="count"></param></span>
- <span style="color: #808080;">///</span> <span style="color: #808080;"><returns></returns></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> DecrBy(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">int</span><span style="color: #000000;"> count)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.DecrementValueBy(key, count);
- }
- </span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;">
- }</span>
2)Hash
View Code
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> Hash:类似dictionary,通过索引快速定位到指定元素的,耗时均等,跟string的区别在于不用反序列化,直接修改某个字段
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> string的话要么是 001:序列化整个实体
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 要么是 001_name: 001_pwd: 多个key-value
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> Hash的话,一个hashid-{key:value;key:value;key:value;}
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 可以一次性查找实体,也可以单个,还可以单个修改
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> RedisHashService : RedisBase
- {
- </span><span style="color: #0000ff;">#region</span> 添加
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 向hashid集合中添加key/value
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> SetEntryInHash(<span style="color: #0000ff;">string</span> hashid, <span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span><span style="color: #000000;"> value)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.SetEntryInHash(hashid, key, value);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 如果hashid集合中存在key/value则不添加返回false,
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 如果不存在在添加key/value,返回true
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> SetEntryInHashIfNotExists(<span style="color: #0000ff;">string</span> hashid, <span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span><span style="color: #000000;"> value)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.SetEntryInHashIfNotExists(hashid, key, value);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 存储对象T t到hash集合中
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 需要包含Id,然后用Id获取
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> StoreAsHash<T><span style="color: #000000;">(T t)
- {
- </span><span style="color: #0000ff;">base</span>.iClient.StoreAsHash<T><span style="color: #000000;">(t);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 获取
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取对象T中ID为id的数据。
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> T GetFromHash<T>(<span style="color: #0000ff;">object</span><span style="color: #000000;"> id)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span>.iClient.GetFromHash<T><span style="color: #000000;">(id);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取所有hashid数据集的key/value数据集合
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> Dictionary<<span style="color: #0000ff;">string</span>, <span style="color: #0000ff;">string</span>> GetAllEntriesFromHash(<span style="color: #0000ff;">string</span><span style="color: #000000;"> hashid)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetAllEntriesFromHash(hashid);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取hashid数据集中的数据总数
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> GetHashCount(<span style="color: #0000ff;">string</span><span style="color: #000000;"> hashid)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetHashCount(hashid);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取hashid数据集中所有key的集合
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> List<<span style="color: #0000ff;">string</span>> GetHashKeys(<span style="color: #0000ff;">string</span><span style="color: #000000;"> hashid)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetHashKeys(hashid);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取hashid数据集中的所有value集合
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> List<<span style="color: #0000ff;">string</span>> GetHashValues(<span style="color: #0000ff;">string</span><span style="color: #000000;"> hashid)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetHashValues(hashid);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取hashid数据集中,key的value数据
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> GetValueFromHash(<span style="color: #0000ff;">string</span> hashid, <span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetValueFromHash(hashid, key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取hashid数据集中,多个keys的value集合
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> List<<span style="color: #0000ff;">string</span>> GetValuesFromHash(<span style="color: #0000ff;">string</span> hashid, <span style="color: #0000ff;">string</span><span style="color: #000000;">[] keys)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetValuesFromHash(hashid, keys);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 删除
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 删除hashid数据集中的key数据
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> RemoveEntryFromHash(<span style="color: #0000ff;">string</span> hashid, <span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.RemoveEntryFromHash(hashid, key);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 其它
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 判断hashid数据集中是否存在key的数据
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> HashContainsEntry(<span style="color: #0000ff;">string</span> hashid, <span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.HashContainsEntry(hashid, key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 给hashid数据集key的value加countby,返回相加后的数据
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">double</span> IncrementValueInHash(<span style="color: #0000ff;">string</span> hashid, <span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">double</span><span style="color: #000000;"> countBy)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.IncrementValueInHash(hashid, key, countBy);
- }
- </span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;">
- }</span>
3)Set
View Code
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> Set:用哈希表来保持字符串的唯一性,没有先后顺序,存储一些集合性的数据
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 1.共同好友、二度好友
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 2.利用唯一性,可以统计访问网站的所有独立 IP
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> RedisSetService : RedisBase
- {
- </span><span style="color: #0000ff;">#region</span> 添加
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> key集合中添加value值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> Add(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span><span style="color: #000000;"> value)
- {
- </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.AddItemToSet(key, value);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> key集合中添加list集合
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> Add(<span style="color: #0000ff;">string</span> key, List<<span style="color: #0000ff;">string</span>><span style="color: #000000;"> list)
- {
- </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.AddRangeToSet(key, list);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 获取
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 随机获取key集合中的一个值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> GetRandomItemFromSet(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetRandomItemFromSet(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取key集合值的数量
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> GetCount(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetSetCount(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取所有key集合的值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> HashSet<<span style="color: #0000ff;">string</span>> GetAllItemsFromSet(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetAllItemsFromSet(key);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 删除
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 随机删除key集合中的一个值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> RandomRemoveItemFromSet(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.PopItemFromSet(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 删除key集合中的value
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> RemoveItemFromSet(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span><span style="color: #000000;"> value)
- {
- </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.RemoveItemFromSet(key, value);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 其它
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 从fromkey集合中移除值为value的值,并把value添加到tokey集合中
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> MoveBetweenSets(<span style="color: #0000ff;">string</span> fromkey, <span style="color: #0000ff;">string</span> tokey, <span style="color: #0000ff;">string</span><span style="color: #000000;"> value)
- {
- </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.MoveBetweenSets(fromkey, tokey, value);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 返回keys多个集合中的并集,返还hashset
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> HashSet<<span style="color: #0000ff;">string</span>> GetUnionFromSets(<span style="color: #0000ff;">params</span> <span style="color: #0000ff;">string</span><span style="color: #000000;">[] keys)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetUnionFromSets(keys);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 返回keys多个集合中的交集,返还hashset
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> HashSet<<span style="color: #0000ff;">string</span>> GetIntersectFromSets(<span style="color: #0000ff;">params</span> <span style="color: #0000ff;">string</span><span style="color: #000000;">[] keys)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetIntersectFromSets(keys);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 返回keys多个集合中的差集,返还hashset
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="fromKey"></span><span style="color: #008000;">原集合</span><span style="color: #808080;"></param></span>
- <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="keys"></span><span style="color: #008000;">其他集合</span><span style="color: #808080;"></param></span>
- <span style="color: #808080;">///</span> <span style="color: #808080;"><returns></span><span style="color: #008000;">出现在原集合,但不包含在其他集合</span><span style="color: #808080;"></returns></span>
- <span style="color: #0000ff;">public</span> HashSet<<span style="color: #0000ff;">string</span>> GetDifferencesFromSet(<span style="color: #0000ff;">string</span> fromKey, <span style="color: #0000ff;">params</span> <span style="color: #0000ff;">string</span><span style="color: #000000;">[] keys)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetDifferencesFromSet(fromKey,keys);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> keys多个集合中的并集,放入newkey集合中
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> StoreUnionFromSets(<span style="color: #0000ff;">string</span> newkey, <span style="color: #0000ff;">string</span><span style="color: #000000;">[] keys)
- {
- </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.StoreUnionFromSets(newkey, keys);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 把fromkey集合中的数据与keys集合中的数据对比,fromkey集合中不存在keys集合中,则把这些不存在的数据放入newkey集合中
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> StoreDifferencesFromSet(<span style="color: #0000ff;">string</span> newkey, <span style="color: #0000ff;">string</span> fromkey, <span style="color: #0000ff;">string</span><span style="color: #000000;">[] keys)
- {
- </span><span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.StoreDifferencesFromSet(newkey, fromkey, keys);
- }
- </span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;">
- }</span>
4)ZSet
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 1.带有权重的元素,比如一个游戏的用户得分排行榜
- </span><span style="color: #808080;">///</span><span style="color: #008000;"> 2.比较复杂的数据结构,一般用到的场景不算太多
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> RedisZSetService : RedisBase
- {
- </span><span style="color: #0000ff;">#region</span> 添加
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 添加key/value,默认分数是从1.多*10的9次方以此递增的,自带自增效果
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> Add(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span><span style="color: #000000;"> value)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.AddItemToSortedSet(key, value);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 添加key/value,并设置value的分数
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> AddItemToSortedSet(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span> value, <span style="color: #0000ff;">double</span><span style="color: #000000;"> score)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.AddItemToSortedSet(key, value, score);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 为key添加values集合,values集合中每个value的分数设置为score
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> AddRangeToSortedSet(<span style="color: #0000ff;">string</span> key, List<<span style="color: #0000ff;">string</span>> values, <span style="color: #0000ff;">double</span><span style="color: #000000;"> score)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.AddRangeToSortedSet(key, values, score);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 为key添加values集合,values集合中每个value的分数设置为score
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> AddRangeToSortedSet(<span style="color: #0000ff;">string</span> key, List<<span style="color: #0000ff;">string</span>> values, <span style="color: #0000ff;">long</span><span style="color: #000000;"> score)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.AddRangeToSortedSet(key, values, score);
- }
- </span><span style="color: #0000ff;">#endregion</span>
- <span style="color: #0000ff;">#region</span> 获取
- <span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取key的所有集合
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> List<<span style="color: #0000ff;">string</span>> GetAll(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetAllItemsFromSortedSet(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取key的所有集合,倒叙输出
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> List<<span style="color: #0000ff;">string</span>> GetAllDesc(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetAllItemsFromSortedSetDesc(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取集合,带分数
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> IDictionary<<span style="color: #0000ff;">string</span>, <span style="color: #0000ff;">double</span>> GetAllWithScoresFromSortedSet(<span style="color: #0000ff;">string</span><span style="color: #000000;"> key)
- {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">base</span><span style="color: #000000;">.iClient.GetAllWithScoresFromSortedSet(key);
- }
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
- <span style="color: #808080;">///</span><span style="color: #008000;"> 获取key为value的下标值
- </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">long</span> GetItemIndexInSortedSet(<span style="color: #0000ff;">string</span> key, <span style="color: #0000ff;">string</span><span <="" div="">
- <div class="">
- <ul class="m-news-opt fix">
- <li class="opt-item">
- <a href="/sql_question-396665.html" target="_blank"><p>< 上一篇</p><p class="ellipsis">MySQL数据库安装步骤</p></a>
- </li>
- <li class="opt-item ta-r">
- <a href="/sql_question-396667.html" target="_blank"><p>下一篇 ></p><p class="ellipsis">MySQL慢SQL语句常见诱因</p></a>
- </li>
- </ul>
- </div>
- </span>