String 字符串
StringSet:
1.设置一个String值
2.设置多个String值,要么都设置成功,要么都失败! 非常有用
StringSetRange:
1.从偏移量offset 开始 使用 value 填充。 如果原来的长度小于offset 中间使用’\0’字符填充(注意,c# 使用 '\0’字符结尾,这种情况导致替换后的字符根本无法显示出来。) 返回值是替换后的字符串长度
例:
redis中有 key=“a” Value = “111111”;
则
StringSetRange(“a”,1,“222”) 返回值为 6, 修改后的字符串为 “122211”。
StringSetRange(“a”,10,“222”) 返回值为13,修改后的字符串为"111111\0\0\0\0222",但是c# 只能展示 “111111”,后面无法显示。要注意。
StringGet:
1.获取一个String的值
2.获取多个String的值
StringGetRange:
1.获取字符串的一个范围 第start位到第end位
StringGetWithExpiry:
1.获取字符串的值以及key的剩余的过期时间
StringGetSet:
1.获取原来的String值 并用新值替换
StringAppend:
1.字符串追加,返回追加后的字符串长度。
StringLength:
1.获取字符串的长度
StringIncrement:
1.字符串为一个数值的,使用此函数可以做加法运算,如果存储的不是一个数值,将会引发错误。
返回增加后的数值
StringDecrement:
1.同上,此函数做减法运算
StringGetBit:
1.获取某位二进制是不是1
StringBitCount:
1.设置某位二进制 ,返回二进制中原来的值
StringSetBit:
1.获取范围中二进制 出现 1的次数
StringBitOperation:
1.first 与 second 中的值做位运算,运算结果保存在 destination中,返回destination的字符串长度
2.一堆key 中做位运算,运算结果保存在destination中没,返回destination的字符串长度
StringBitPosition:
获取二进制中第一次出现1或0的位置
Hash 键值对
HashSet:
1.设置hash 键值对,When只能使用的 NotExists 以及 Always, Exists 不可使用,他表示的是hash的键,而非redis的key。要注意!!!
2.设置一堆键值对。
HashGet:
1.获取hash的某个值
2.获取hash的某些值
HashKeys:
1.获取hash的所有key
HashValues:
1.获取hash的所有值
HashLength:
1.获取hash的键值对数量
HashIncrement:
1.Hash中的某值作加法运算
HashDecrement:
1.Hash中的值作减法运算
HashExists:
1.某键值对存在不存在
HashGetAll:
1.获取所有的键值对
HashDelete:
1.删除某个键
2.删除 一些键
HashScan:
查询Hash中的键值对。
HashScan:
查询Hash中的键值对,这里的pagesize 不太清楚。
List 列表
ListLeftPush:
1.从列表的左侧插入值 When只能使用Always 以及 Exist 表示的是redis的Key存在不在 而非元素,返回列表中的元素个数。
2.从列表的左侧插入一堆值 从数组的第一个开始
ListRightPush:
1.从列表的右侧插入值 When只能使用Always 以及 Exist 表示的是redis的Key存在不在 而非元素,返回列表中的
2.从列表的右侧插入一堆值 从数组的第一个开始
ListLeftPop:
1.从列表的左侧取出一个值
ListRightPop:
1.从列表的右侧取出一个值
ListRightPopLeftPush:
1.source列表的右侧取出值并把值插入到destination的左侧,该操作为原子操作
ListRemove:
1.删除列表中的一个元素,可设置要删除的数量 返回删除的数量
ListRange:
1.取出列表中的值从Start 到End End=-1表示全部取出
ListLength:
1.列表中的元素个数
ListGetByIndex:
1.获取列表中某个位置的元素
ListSetByIndex
1.设置列表中某个位置的元素
ListInsertAfter:
1.在pivot 元素的后面插入一个元素 value 插入成功返回的列表总长度,插入失败返回-1
ListInsertBefore:
1.在pivot 元素前面插入一个元素 value 插入成功返回列表总长度,插入失败返回-1
ListTrim:
1.按指定范围裁剪列表
左边插入,右边取出即可实现队列
右边插入,右边取出即可实现栈
Set 集合 集合中的值没有相同的
SetAdd:
1.向集合中添加一个元素。返回是否添加成功
2.向集合中添加一堆元素。 返回添加成功的个数
SetPop:
会删除集合中的元素
1.从集合中随机取出一个元素
2.从集合中取出 count 个元素
SetRandomMember:
不删除集合中的元素
1.从集合中随机返回一个元素
SetRandomMembers:
1.从集合中随机返回count的元素
SetRemove:
1.从集合中移除指定的元素 返回是否移除成功
2.从集合中移除一堆元素 返回移除元素的个数
SetScan:
1.模糊查找集合中的元素
SetMembers:
1.返回集合中的所有元素
SetMove:
1.把一个元素从source集合中移动到 destination集合中 返回是否移动成功
当destination 中已存在元素,仅从 source中删除元素
SetLength:
1.返回集合中元素的个数
SetContains:
1.判断集合中是否存在元素
SetCombine:
-
两集合 交集/并集/差集。操作
-
多集合 交集/并集/差集。操作
SetCombineAndStore:
1.两集合 交集/并集/差集。 操作结果保存在 destination 返回受影响的个数
2.多集合 交集/并集/差集。操作结果保存在 destination 返回受影响的个数
Sorted Set 有序集合
SortedSetAdd:
1.添加一个元素到有序集合中,如果集合中存在 则会修改其对应的分值 返回是否添加成功 此处的 When 表示的是有序集合的元素 而非 redis的key
2.添加多个元素到有序集合中,返回添加的个数
SortedSetScore:
1.返回有序集合中的元素的分值
SortedSetRemove:
1.移除有序集合中的一个元素 返回是否移除成功
2.移除有序集合中的多个元素 返回移除的个数
SortedSetRemoveRangeByRank:
1.移除有序集合中的按索引排序的第Start 到 第Stop个
SortedSetRemoveRangeByScore:
1.移除有序集合中的按分值排序的第Start 到 第Stop个
SortedSetRemoveRangeByValue:
1.移除有序集合中的按值排序的第Start 到 第Stop个
SortedSetLength:
1.返回有序集合中分值min 到 max的元素个数 默认是包含两者 Exclude.Both 排除两者 Exclude.Start 排除 min
Exclude.Stop 排除 max。
SortedSetLengthByValue:
1.返回有序集合中元素值min 到 max 的元素个数 默认是包含两者 Exclude.Both 排除两者 Exclude.Start 排除 min Exclude.Stop 排除 max。
SortedSetRangeByRank:
1.返回有序集合按索引 升序/降序 第Start个到 Stop个元素
SortedSetRangeByRankWithScores:
1.与上者相同 只是返回的不仅包含 元素 而且有元素对应的分值
SortedSetRangeByScore:
1.返回有序集合按分值 升序/降序 第Start 到 Stop 个元素
SortedSetRangeByScoreWithScores:
1.与上者相同 只是返回的不仅包含 元素 而且有元素对应的分值
SortedSetRangeByValue:
1.返回有序集合按元素值 升序/降序 第Start 到 Stop 个元素
SortedSetScan:
1.模糊查找有序集合中的一个元素
SortedSetIncrement:
1.对有序集合中的某个元素增加一个分值,如果元素不存在 则会添加 将要增加的分值作为其分值
SortedSetDecrement:
1.对有序集合中的某个元素减少一个分值,如果元素不存在 则会添加 将要减少的分值作为其分值
SortedSetCombineAndStore:
1.对两个有序集合 交集/并集/差集 。Aggregate 指示合集后的 分值 取最小 最大 还是求和
2.对多个有序集合 交集/并集/差集
很适合用来做排行榜
HyperLogLog 暂时还不知道其用处,下次再补!
GEO 暂时还不知道其用处,下次再补!
Key 键操作
KeyExists:
1.返回键是否存在
KeyExpire:
1.设置key的过期时间 返回key 是否存在
KeyDelete:
1.删除一个key
2.删除一些key
KeyRename:
1.从key 重命名 如果 key 不存在 或者要重命名的已经存在 则会引发错误
KeyRandom:
1.随机取一个key
KeyType:
1.返回key 中存储的数据类型 不存在返回RedisType.None
KeyTimeToLive:
1.返回Key的剩余过期时间
KeyDump:
1.把某个 key 中的值序列化成 byte[]数组
KeyRestore:
1.把 keyDump 命令中序列化的值 反序列化保存在key中
KeyMove:
1.把key 从此库移动到另一个库
KeyMigrate
1.把key 从本 redis 实例移动到另一个redis实例
KeyPersist
1.移除Key的生存时间
lock 分布式锁
LockTake:
1.获取一把分布式锁, 获取到返回true 没获取到返回false
LockExtend:
1.为分布式续航, 如果续航成功返回true 续航失败返回false
LockQuery:
1.获取分布式锁中的value
LockRelease:
1.释放分布式锁
分布式锁循环调用 LockTake 直到返回true 设置一个过期时间,是为了宕机保护,
开启子线程去调用LockExtend 为分布式续航,true 就继续续航 false 不再执行
执行完代码后 使用 LockRelease 释放掉分布式锁。
String 字符串StringSet:1.设置一个String值2.设置多个String值,要么都设置成功,要么都失败! 非常有用StringSetRange:1.从偏移量offset 开始 使用 value 填充。 如果原来的长度小于offset 中间使用’\0’字符填充(注意,c# 使用 '\0’字符结尾,这种情况导致替换后的字符根本无法显示出来。) 返回值是替换后的字符串长度例...
前两天朋友问我,有没有
使用
过
Stack
Ex
change
.
Redis
,问我要个封装类,由于之前都是
使用
Service
Stack
.
Redis
,由于Service
Stack
.
Redis
v4版本后是收费版的,所以现在也很有公司都在
使用
Stack
Ex
change
.
Redis
而抛弃Service
Stack
.
Redis
了。其实个人觉得,两个驱动都不错,只是由于Service
Stack
.
Redis
收费导致目前很多公司都是基于V3版本的
使用
,也有人说V3版本有很多Bug,没有维护和升级,不过至少目前我是没发现Bug。
不过Service
Stack
.
Redis
同
Stack
Ex
change
.
Redis
比较,抛开收
【实例简介】
C#
Stack
Ex
change
.
Redis
操作封装类库,分别封装了
Redis
五大数据结构(
String
,Hash,List,Set,ZSet)的增删改查的操作方法,支持Async异步操作。支持
Redis
分库操作。支持信息队列操作。
带有单元测试,为每个方法都做了测试。包括
Redis
队列操作测试
支持Hangfire批处理( )
借助ConnectionMultipl
ex
er,可有效利用
Redis
资源
支持
Redis
前缀,允许针对单个
Redis
数据库的多个Hangfire实例
允许自定义成功和失败列表的大小
尽管有名称, Hangfire.
Redis
.
Stack
Ex
change
.StrongName尚未签名,因为Hangfire.Core尚未签名。
教程:ASP.NET Core MVC上的
Redis
上的Hangfire
要在ASP.NET Core MVC项目中对
Redis
使用
Hangfir
1.2.1版
Stack
Ex
change
.
Redis
可用于vs2010。
C#
可以用。
Stack
Ex
change
.
Redis
是.net下的
Redis
客户端之一,目前是免费的。而用户量比较多的Service
Stack
.
Redis
现在是收费的。vs2010属于.NET4.0。所以vs2010只能用
Stack
Ex
change
.
Redis
的1.2.1版及以前的版本。1.2.1以后的版本不支持.NET4.0了。
把下载的三个文件(
Stack
Ex
change
.
Redis
.dll、
Stack
Ex
change
.
Redis
.dll.refresh、
Stack
Ex
change
.
Redis
.xml)复制粘贴到计算机上的某个目录下。然后在vs2010的解决方案资源管理器窗口中右击项目,单击“添加引用”,然后在打开的窗口中选“浏览”标签,之后找到要
使用
的dll文件(
Stack
Ex
change
.
Redis
.dll),点击确定即可引进
Stack
Ex
change
.
Redis
。之后就可以在程序中
使用
dll了。在
C#
程序里需要引用
Stack
Ex
change
.
Redis
名字空间:
Using
Stack
Ex
change
.
Redis
;
另外,
使用
vs2010,需要安装.net framework 4.6(可从微软官网下载安装),否则程序运行时会提示无法从程序集调用
Stack
Ex
change
.
Redis
。
1、安装
Stack
Ex
change
.
Redis
在 NuGet 中搜索
Stack
Ex
change
.
Redis
和 Newtonsoft.Json,直接点击按钮安装即可。
Stack
Ex
change
.
Redis
是
C#
操作
Redis
数据库的客户端。
Newtonsoft.Json 用来序列化 Josn 字符串及反序列化拿到对象。
2、引用及初始化
using
Stack
Ex
change
.
Redis
;
using Newtonsoft.Json;
初始化
redis
Stack
Ex
change
.
Redis
是一款免费的操作
Redis
的客户端工具,我们
使用
这个库来简单的学习下
Redis
的一些基本操作
Redis
默认安装好后的端口是6379
密码可以自己设置,
使用
命令修改
config get requirepass //获取当前密码
config set requirepass "yourpassword"//设置当前密码
代码里需引用
Stack
Ex
ch...
Redis
是一个开源的
使用
ANSI C语言编写的支持网络、可基于内存也可持久化的日志型、Key-Value 数据库。
常用
它来存储缓存数据,能非常轻松的实现缓存过期刷新机制。
多种语言都可以连接到
Redis
数据库服务器,本文将推荐一个非常简洁的
C#
连接
Redis
数据库的开源项目。
通常,
C#
使用
Redis
会推荐
使用
添加 NuGet 包
Stack
Ex
c...
Redis
String
Service 类请参考第一篇的封装
redis
数据结构
string
的
使用
using (
Redis
String
Service service = new
Redis
String
Service())
service.Set<
string
>("student1", "梦的翅膀");
1.安装
redis
操作工具包,Service
Stack
.
Redis
。2.在App.config/web.config配置
Redis
信息 <configSections>
<section name="
Redis
Config" type="
redis
Demo.
redis
.
Redis
Config,
redis
Demo" />
</configSections&...
Nuget添加
Stack
Ex
change
.
Redis
的引用
由于
Redis
封装类同时
使用
了Json,需要添加JSON.NET引用(Newtonsoft.Json)
Redis
封装类
/// <summary>
///
Redis
操作类
/// </summary>
public class
Redis
Helpe...
### 回答1:
Stack
Ex
change
.
Redis
是一个.NET平台下的开源
Redis
客户端库,它提供了一种高性能、稳定和易于
使用
的方式来与
Redis
服务器进行通信。它支持异步和同步操作,并提供了一些高级特性,如管道、发布/订阅等。
Stack
Ex
change
.
Redis
具有以下特点:
- 快速:通过
使用
高性能、低级别的
Redis
通信协议,
Stack
Ex
change
.
Redis
可以实现高效的数据访问。
- 可扩展性:
Stack
Ex
change
.
Redis
支持分区功能,使它能够在多个
Redis
节点上分布数据,并且可以在需要时轻松地添加或删除节点。
- 可靠性:
Stack
Ex
change
.
Redis
有一个内置的连接池来管理与
Redis
服务器的连接,从而可以提高性能和可靠性,并避免了频繁的连接/断开开销。
- 易用性:
Stack
Ex
change
.
Redis
提供了一个简单的
API
,使得开发人员能够轻松地与
Redis
进行交互。
总的来说,如果你在.NET平台上
使用
Redis
,
Stack
Ex
change
.
Redis
应该是你的首选。
### 回答2:
Stack
Ex
change
.
Redis
是一个基于
Redis
的 .Net客户端库,由
Stack
Ex
change
团队开发和维护。
Redis
内存数据库是非常流行的键值对存储,支持复杂数据结构,速度快,有完善的集群方案,在web应用程序、消息系统等应用场景中被广泛
使用
。
Stack
Ex
change
.
Redis
提供了方便易用、高性能、可扩展的
API
,可以直接向
Redis
发送命令、订阅和发布消息、连接
Redis
集群等。他进一步扩展了
Redis
命令,使其更加简单易用,并支持事务、管道和多线程操作。同时,
Stack
Ex
change
.
Redis
支持
Redis
的高级特性,如SortedSet和Hash;而且,它还能够在运行时自动检测
Redis
服务状态,支持
Redis
Sentinel、Cluster和多节点环境。
此外,
Stack
Ex
change
.
Redis
还支持应用程序跟踪(application tracing),采用异步
API
调用,从而提高了性能和可伸缩性。与其他
Redis
客户端库不同,
Stack
Ex
change
.
Redis
实现了连接池、序列化和反序列化器等高级功能,
使用
起来更加方便和优雅,可以减少代码量和复杂性。
总的来说,
Stack
Ex
change
.
Redis
是一个很不错的
Redis
客户端库,它提供了强大而与
Redis
完全兼容的
API
,打破了语言壁垒,使得开发者可以在自己喜欢的语言环境(例如.Net)中
使用
Redis
。 许多一流的公司如
Stack
Overflow和GitHub都
使用
Stack
Ex
change
.
Redis
,证明了它的可靠性和性能优势。
### 回答3:
Stack
Ex
change
.
Redis
是
Redis
数据库的一个适用于 .NET 编程语言的客户端。它提供了一组丰富的功能,用于在 .NET 框架内与
Redis
数据库进行交互。
Stack
Ex
change
.
Redis
旨在为 .NET 开发人员提供最佳的
Redis
集成体验。
Stack
Ex
change
.
Redis
提供了许多优点,其中最主要的有:
高度优化的读写操作。
Stack
Ex
change
.
Redis
客户端库具有非常高的效率,用于从
Redis
服务器读取和写入数据时,可大大减少网络流量和延迟。这使得它成为处理高吞吐量负载的很好的选择。
支持许多复杂数据类型。除了提供基本的字符串和整数类型之外,
Stack
Ex
change
.
Redis
还支持许多复杂的数据类型,例如哈希表、排序集合和列表数据类型。这些数据类型将极大地帮助开发人员设计和实施高效的
Redis
应用程序。
易于
使用
和集成。
Stack
Ex
change
.
Redis
具有完美的适配性,可以很简单地与 .NET 中的 ASP.NET 应用程序、Windows 服务、控制台应用程序等相集成。此外,它具有丰富的文档、教程和
API
reference,可以让开发者轻松入手。
另外,
Stack
Ex
change
.
Redis
还包括许多其他特性,如:连接复用、事务支持、发布与订阅、管道等。这使得它成为在 .NET 编程语言中
使用
Redis
数据库的非常好的选择。