前言

最近需要使用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. Redux 核心概念

    http://gaearon.github.io/redux/index.html ,文档在 http://rackt.github.io/redux/index.html .本文不是官方文档的翻译. ...

  2. JavaScript判断对象是否含有某个属性

    两种方式,但稍有区别 1,in 运算符 1 2 3 var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toStr ...

  3. hdu_1034(模拟题)

    很久没有打模拟题了,再次总结一下模拟题的做法: 仔细分析题意,弄清楚过程 理清楚模拟步骤,严格按照步骤编写代码 添加中间输出测试每步结果 虽然这是一个很简单的水题,但是没有松哥帮忙还是卡了很久,因为没 ...

  4. vue实现侧边栏手风琴效果

    模板 代码如下 html <template> <div class="header"> <ul> <!-- 循环数据在点击调用chang ...

  5. MYSQL 数据库导入导出命令

    在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. MySQL命令行导出数据库 1,进入MySQL目录下的bin ...

  6. jQuery 表单

    1.一般输入信息的提示用<span>   属性为text 2.<input>只有设置了 name 属性的表单元素才能在提交表单时传递它们的值. 3.blur 失去焦点 4.$. ...

  7. eclipse怎么修改工作空间路径

    1.打开eclipse,在eclipse界面中的菜单栏中点击“文件”,如果您的eclipse是英文版,那么应该是file,打开后点击“切换工作空间" 2.如果您的eclipsehi英文版,则 ...

  8. beetl 配置多视图解析器

    如下配置,指定了三个视图解析器,一个用于beetl页面渲染,一个用于cms,采用了beetl技术,另外一个一些遗留的页面采用jsp <bean name="beetlConfig&qu ...

  9. YAML书写规范

    1. 认识 YAML YAML是一个类似 XML.JSON 的标记性语言.YAML 强调以数据为中心,并不是以标识语言为重点.因而 YAML 本身的定义比较简单,号称"一种人性化的数据格式语 ...

  10. Python的交叉编译移植至arm板

    虽然网上有那么多python的交叉编译移植教程,但是方法差异蛮大,需要根据实际开发板的型号做调整,以下是适用于海思的板子移植过程. step 1. python版本从网上下就可以: step 2. 解 ...