Redis .Net 基本类型使用之南
前言
最近需要使用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 基本类型使用之南的更多相关文章
- 深入浅出Redis04使用Redis数据库(lists类型)
一 lists类型及操作 List是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字. Redis的list类型其实就是一个每个子元素都是sring类 ...
- 【redis】03list类型
list类型 redis的list类型是一个链表结构,他的主要功能是push.pop.获取一个范围的所有值等等一些操作, 咱们push什么意思,push是不是相当于咱们php里面的array_push ...
- redis的lists类型
List是一个链表结构 , 主要功能是push . pop .获取一个范围的所有值等等 , 操作中key理解为链表的名字 . redis 的 list类型其实就是一个每个子元素都是string类型的双 ...
- redis的set类型
1.简单描述 redis的set类型是string类型数值的无序集合.set元素最大可以包含2的32次方减1个元素.由于set类型是通过hash table实现(旧版本是这样,新版本不确定是不是改用了 ...
- redis的list类型
1.简单介绍 redis的list类型其实就是一个每个元素都是string类型的双向链表.所以lpush.rpush.lpop和rpop命令的时间复杂度是O(1),list会记录链表的长度,所以lle ...
- redis数据类型-字符串类型
Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...
- 使用Redis数据库(String类型)
一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...
- 第二百九十七节,python操作redis缓存-List类型,可以理解为列表
python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name ...
- 第二百九十五节,python操作redis缓存-字符串类型
python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...
随机推荐
- metasploit魔鬼训练营(收集外围信息)
现在我们时空穿越,来到魔鬼训练营的主角身上,现在我们要训练,对V公司进行渗透测试,回想起总监说的情报收集 1,外围搜集,指的是自己假装是一个正常用户来搜集情报 我们开启msf用auxiliary/sc ...
- BZOJ:4333: JSOI2012 智者的考验
4333: JSOI2012 智者的考验 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 68 Solved: 18[Submit][Status][ ...
- 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍
浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...
- HDU 2563 统计问题(递归,思维题)
统计问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- And Then There Was One(约瑟夫问题变形)
题目链接:http://poj.org/problem?id=3517 And Then There Was One Time Limit: 5000MS Memory Limit: 65536K ...
- SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解
想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的.张正友于1998年在论文:"A Flexible New Technique fro Cam ...
- JavaScript变量声明与提升
一直以来对变量提升都是比较模糊的,今天特地看了一下这个知识点,总结一下. 1.举个最简单的例子来说一下什么是变量提升吧. function foo(){ console.log(x); // unde ...
- HDU 1562 Oil Deposits
题目: The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. G ...
- 番外篇--Moddule Zero安装
Moddule Zero 安装 1.2.1 从模板创建 使用ABP和module-zero开始一个新项目最简单的方式是使用启动模板.详细了解请参考启动模板文档. 1.2.2 手动安装 如果你有一个预先 ...
- [翻译]HTML5 - 会话历史和导航
原文为:https://w3c.github.io/html/browsers.html#session-history-and-navigation 一.浏览上下文的会话历史记录 浏 ...