前言

最近需要使用redis,看了一些文档,也在博客园里面看了很多文章,这里就记录下Redis常用类型的操作。

String

string是redis基本类型,一般通过Get,Set 命令进行操作,这里我用ServiceStack.Redis 进行操作:

using (redis)
{
//setValue 插入数据
redis.SetValue("hello", "world");
string s = redis.GetValue("hello"); redis.SetValue("Id", .ToString());
long id = redis.IncrementValue("Id");
id = redis.IncrementValueBy("Id", ); redis.ExpireEntryIn("hello", new TimeSpan(, , )); }

List

list就是我们提到的链表

using (redis)
{
string listId = "listId"; for (int i = ; i < ; i++)
{
redis.AddItemToList(listId, i.ToString());
} string s = redis.GetItemFromList(listId, );
List<string> all = redis.GetAllItemsFromList(listId);
long count = redis.GetListCount(listId); s = redis.PopItemFromList(listId);
s = redis.RemoveStartFromList(listId);
s = redis.RemoveEndFromList(listId); }

Set

set也是数据容器,和list不一样,set里面的元素不能重复

using (redis)
{
string setId1 = "setId1";
string setId2 = "setId2";
for (int i = ; i < ; i++)
{
redis.AddItemToSet(setId1, i.ToString());
} for (int i = ; i < ; i++)
{
redis.AddItemToSet(setId2, (i + ).ToString());
} long count = redis.GetSetCount(setId1);
string s = redis.GetRandomItemFromSet(setId1);
HashSet<string> allIds = redis.GetAllItemsFromSet(setId1); HashSet<string> unionIds = redis.GetUnionFromSets(setId1, setId2);
redis.StoreIntersectFromSets("intersectId", setId1, setId2);
redis.StoreDifferencesFromSet("diffentsecId", setId1, setId2); allIds = redis.GetAllItemsFromSet("intersectId");
allIds = redis.GetAllItemsFromSet("diffentsecId"); redis.RemoveItemFromSet(setId1, "");
s = redis.PopItemFromSet(setId1); }

SortSet

SortSet和set一样,但sortset顾名思义就是有排序的set

using (redis)
{
string sortSetId = "sortSetId"; for (int i = ; i < ; i++)
{
redis.AddItemToSortedSet(sortSetId, i.ToString(), i);
} bool contains = redis.SortedSetContainsItem(sortSetId, "");
long count = redis.GetSortedSetCount(sortSetId);
count = redis.GetSortedSetCount(sortSetId, , ); List<string> ids = redis.GetAllItemsFromSortedSet(sortSetId);
ids = redis.GetAllItemsFromSortedSetDesc(sortSetId);
ids = redis.GetRangeFromSortedSet(sortSetId, , );
ids = redis.GetRangeFromSortedSetByHighestScore(sortSetId, , );
ids = redis.GetRangeFromSortedSetByLowestScore(sortSetId, , ); double score = redis.GetItemScoreInSortedSet(sortSetId, ""); IDictionary<string, double> valueWithScores = redis.GetRangeWithScoresFromSortedSet(sortSetId, , );
valueWithScores = redis.GetRangeWithScoresFromSortedSetByHighestScore(sortSetId, , );
valueWithScores = redis.GetRangeWithScoresFromSortedSetByLowestScore(sortSetId, , ); bool isSucc = redis.RemoveItemFromSortedSet(sortSetId, ""); count = redis.RemoveRangeFromSortedSet(sortSetId, , );
count = redis.RemoveRangeFromSortedSetByScore(sortSetId, , ); string s = redis.PopItemWithHighestScoreFromSortedSet(sortSetId);
s = redis.PopItemWithLowestScoreFromSortedSet(sortSetId); }

Hash

hash一般用来存储我们的对象模型

using (redis)
{
string hashId = "hashId"; bool isSucc = redis.SetEntryInHash(hashId, "Hello", "world");
for (int i = ; i < ; i++)
{
redis.SetEntryInHash(hashId, i.ToString(), i.ToString());
} long count = redis.GetHashCount(hashId);
List<string> ids = redis.GetHashKeys(hashId);
ids = redis.GetHashValues(hashId); isSucc = redis.HashContainsEntry(hashId, "Hello");
string s = redis.GetValueFromHash(hashId, "Hello");
ids = redis.GetValuesFromHash(hashId, "", "", ""); isSucc = redis.RemoveEntryFromHash(hashId, "Hello");
long afterInc = redis.IncrementValueInHash(hashId, "", ); var newStringMap = new Dictionary<string, string> {
{"","e"}, {"","f"}, {"","g"}}; redis.SetRangeInHash(hashId, newStringMap);
}

总计

string,list, set, sortset, hash是redis的五种类型,这里只是简单的记录其基本操作

Redis .Net 基本类型使用之南的更多相关文章

  1. 深入浅出Redis04使用Redis数据库(lists类型)

    一  lists类型及操作 List是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字. Redis的list类型其实就是一个每个子元素都是sring类 ...

  2. 【redis】03list类型

    list类型 redis的list类型是一个链表结构,他的主要功能是push.pop.获取一个范围的所有值等等一些操作, 咱们push什么意思,push是不是相当于咱们php里面的array_push ...

  3. redis的lists类型

    List是一个链表结构 , 主要功能是push . pop .获取一个范围的所有值等等 , 操作中key理解为链表的名字 . redis 的 list类型其实就是一个每个子元素都是string类型的双 ...

  4. redis的set类型

    1.简单描述 redis的set类型是string类型数值的无序集合.set元素最大可以包含2的32次方减1个元素.由于set类型是通过hash table实现(旧版本是这样,新版本不确定是不是改用了 ...

  5. redis的list类型

    1.简单介绍 redis的list类型其实就是一个每个元素都是string类型的双向链表.所以lpush.rpush.lpop和rpop命令的时间复杂度是O(1),list会记录链表的长度,所以lle ...

  6. redis数据类型-字符串类型

    Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...

  7. 使用Redis数据库(String类型)

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...

  8. 第二百九十七节,python操作redis缓存-List类型,可以理解为列表

    python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name ...

  9. 第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

随机推荐

  1. HDU4920-Matrix multiplication-矩阵乘法 51nod-1137 矩阵乘法

    先贴两个基础的矩阵乘法,以后再贴一些题. hdu. Matrix multiplication Time Limit: 4000/2000 MS (Java/Others)    Memory Lim ...

  2. POJ2503-Babelfish-二分

    Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 44545   Accepted: 18803 Descr ...

  3. [国嵌攻略][136][DM9000网卡驱动深度分析]

    网卡初始化 1.分配描述结构,alloc_etherdev 2.获取平台资源,platform_get_resource 2.1.在s3c_dm9k_resource中有相关的资源 2.2.add地址 ...

  4. Java本地缓存解决方案其一(使用Google的CacheBuilder)

    前不久,业务实现上需要用到本地缓存来解决一些数据量相对较小但是频繁访问的数据,通过查找各种资料,找到了一种可以实现的方案--采用的是Google的CacheBuilder.下面是代码实现过程:1.首先 ...

  5. O2O网站

    编辑 020是新型的网络营销模式,O2O即Online To Offline,线下销售与服务通过线上推广来揽客,消费者可以通过线上来筛选需求,在线预订.结算,甚至可以灵活地进行线上预订,线下交易.消费 ...

  6. php ueditor 后台配置项返回格式出错,上传功能将不能正常使用!

    解决常见的有两种 1,可能是时区设置问题,有系统区分大小写. date_default_timezone_set("Asia/chongqing");改为 date_default ...

  7. OOAD之策略模式(1)

    在引入策略模式之前.先用一个小项目解释为什么要有策略模式.这是一个模拟鸭子的小游戏.最开始需求为,所有的鸭子都会叫以及都会游泳且叫声游泳姿势都一样.因此我们用原始OO的思维去编写代码时很容易做到 pu ...

  8. 强大的Cmder

    why 漂亮,包装并美化了各个shell 带task功能,能记忆,能执行脚本 配合win10的bash,能实现类似xshell的功能 注意点 需要注意的一点,Cmder来源于另外一个项目ConEmu, ...

  9. 理解Python中的装饰器//这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档

    转自:http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档 ...

  10. JavaScript ES6 Arrow Functions(箭头函数)

    1. 介绍 第一眼看到ES6新增加的 arrow function 时,感觉非常像 lambda 表达式. 那么arrow function是干什么的呢?可以看作为匿名函数的简写方式. 如: var ...