netcore redis 存储集合_.net core redis的全套操作

本文详细介绍了如何在 .NET Core 中使用 Redis 进行数据存储,涵盖从安装到实战的全过程,包括 string、list、hash 和 sorted set 四种数据类型的操作,以及发布订阅功能的实现。同时,还涉及到 Redis 数据迁移和备份恢复的步骤,为全面掌握 .NET Core 中的 Redis 使用提供了清晰的指导。
摘要由CSDN通过智能技术生成

摘要:

发布订阅 2、在.netcore中的调用订阅:redisManager.Subscribe("dylan",(channel,value)=>{Console.WriteLine(channel.ToString()+":"+value.ToString());});发布:vardata=new{name="dylan",code="sharecore"};redisManager

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

temctlenableredis 二、redisstring类型1、string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。st

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。

annel">publicvoidUnsubscribe(stringchannel){ISubscribersub=_conn.GetSubscriber();su

目录

y,ConvertJson(value)));}​//出队//

一、在centos7上安装redis

lt;/param>//publiclo

二、redis string类型

语句就可以搞定;但是下面这两条语句将打印整个字符串chara[20]="1234";cout<

三、redis list 类型

h("dylan");//队列长度stringb=redisManager.ListLeftPop("key123");//出栈 四、redishash类型1、R

四、redis hash类型

tSubscriber();sub.UnsubscribeAll();}​#endregion发布订阅 2、在.netcore中的调用订阅:redisManager.Subscribe("d

五、redis sortedset类型

Value>(){"1","2"};returnDo(db=>db.HashDelete(key,dataKeys.ToArray()));}​//从

六、redis Subscribe 与 Publish

uo;字符串的地址”,但是有细微区别之处在字符数组a中,a表示第一个字符的地址,a+1表示第二个字符的地址;在第一条打印地址的语句中,(int*)a只是起到了一个强制类型转换的作用,换句话

七、redis数据迁移

​//判断某个数据是否已经被缓存/&lt

Key">///可以为负///增长后的值

lt;endl;//获取字符数组a的地址4cout<

量存储在静态存储区,有地址第三条语句是让一个常量指针直接指向静态存储区的"1234"的地址,因为是直接指向本尊地址,所以要加上const限定符而第一条语句则是将静态存储区的"1234"的副本拿出来复制

mmary>///移除hash中的某值/

接着进入目录,运行ll命令查看该目录下有一个dump.rdb文件,该文件就是redis数据备份文件:[root@localhost~]#cd/var/lib/redis[root@localhostr

区别之处在字符数组a中,a表示第一个字符的地址,a+1表示第二个字符的地址;在第一条打印地址的语句中,(int*)a只是起到了一个强制类型转换的作用,换句话说,a表示第一个字符的地址,但是cout&l

指针p指向“1234”就没有问题啦,地址对地址嘛,但是编译后出错了,理由是"1234"是一个常量,所以加上了const限定。关于这里为什么要加const限定才正确,如果不加的话

入队/

;/param>///publicListListRange(stringkey){key=Ad

命名为dump.rdb.back。(可以使用FTP) 新服务器连新服务器,进入到redis数据备份存放的目录:[root@localhost~]#cd/var/lib/redis[root@

ashGet(key,dataKey);returnConvertObj(value);});}​//为数字增长val///

e=redisManager.StringGet("dylan");Console.WriteLine($"获取缓存值为:{value}"); 三、redis list类型1、Re

/summary>publicvoidUnsubscribeAll(){ISubscribersub=_conn.GetSubscriber();sub.UnsubscribeAll();}​#

t;///移除hash中的多个值///

//

es=redis.ListRange(key);returnConvetList(values);});}​//入队///

//可以为负///

minarr){if(!item.Value.IsNullOrEmpty){result.Add(JsonConvert.DeserializeObject(item.Value))

的内部List的值///

//<

gkey,Tvalue){key=AddSysCustomKey(key);Do(db=>db.ListLeftPush(key,ConvertJson(value)));}​///

部(右边)。 个人认为list是非常好用的一个类型,我们可以把Redis的list当成消息队列使用,比如向注册用户发送欢迎邮件的工作,可以在注册的流程中把要发送邮件的邮箱放到list中,另一

ger.Subscribe("dylan",(channel,value)=>{Console.WriteLine(channel.ToString()+":"+value.ToString()

;

//publicvoidListRightPush(stringkey,Tvalue){key=AddS

gt;&lt

准备条件

m>///publicvoidListLeftPush(stringkey,Tvalue){key

准备redis的安装源

​//Redis发布订阅订阅///

准备nuget包:StackExchange.Redis

sp;  List类型的所有操作方法。#regionList​#region同步方法​//移除指定ListId的内部List的值///<

实战之路

dSysCustomKey(key);returnDo(db=>{HashEntry[]arr=db.HashGetAll(key);foreach(variteminarr){if(!item

一、在centos7上安装redis

amname="T">//

下载最新Remi的软件源

10];cout<

yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

安装redis

redis]#cpdump.rdb.backdump.rdb3、重启新服务器redis服务,完成[root@localhostredis]#systemctl restartredis&nb

yum --enablerepo=remi install redis

启动redis

stLength(key));}​#endregion同步方法​#region异步方法直接复制同步的方法,在方法外后面加上Async即可#endregion异步方法​#endregionList&nb

systemctl start redis

设置redis开机启动

rsub=_conn.GetSubscriber();returnsub.Publish(channel,ConvertJson(msg));}​//Redis发

systemctl enable redis

Key">///可以为负///增长后的值

lt;endl;//获取字符数组a的地址4cout<

量存储在静态存储区,有地址第三条语句是让一个常量指针直接指向静态存储区的"1234"的地址,因为是直接指向本尊地址,所以要加上const限定符而第一条语句则是将静态存储区的"1234"的副本拿出来复制

mmary>///移除hash中的某值/

接着进入目录,运行ll命令查看该目录下有一个dump.rdb文件,该文件就是redis数据备份文件:[root@localhost~]#cd/var/lib/redis[root@localhostr

区别之处在字符数组a中,a表示第一个字符的地址,a+1表示第二个字符的地址;在第一条打印地址的语句中,(int*)a只是起到了一个强制类型转换的作用,换句话说,a表示第一个字符的地址,但是cout&l

指针p指向“1234”就没有问题啦,地址对地址嘛,但是编译后出错了,理由是"1234"是一个常量,所以加上了const限定。关于这里为什么要加const限定才正确,如果不加的话

入队/

;/param>///publicListListRange(stringkey){key=Ad

命名为dump.rdb.back。(可以使用FTP) 新服务器连新服务器,进入到redis数据备份存放的目录:[root@localhost~]#cd/var/lib/redis[root@

ashGet(key,dataKey);returnConvertObj(value);});}​//为数字增长val///

e=redisManager.StringGet("dylan");Console.WriteLine($"获取缓存值为:{value}"); 三、redis list类型1、Re

/summary>publicvoidUnsubscribeAll(){ISubscribersub=_conn.GetSubscriber();sub.UnsubscribeAll();}​#

t;///移除hash中的多个值///

//

es=redis.ListRange(key);returnConvetList(values);});}​//入队///

//可以为负///

minarr){if(!item.Value.IsNullOrEmpty){result.Add(JsonConvert.DeserializeObject(item.Value))

的内部List的值///

//<

gkey,Tvalue){key=AddSysCustomKey(key);Do(db=>db.ListLeftPush(key,ConvertJson(value)));}​///

部(右边)。 个人认为list是非常好用的一个类型,我们可以把Redis的list当成消息队列使用,比如向注册用户发送欢迎邮件的工作,可以在注册的流程中把要发送邮件的邮箱放到list中,另一

ger.Subscribe("dylan",(channel,value)=>{Console.WriteLine(channel.ToString()+":"+value.ToString()

;

//publicvoidListRightPush(stringkey,Tvalue){key=AddS

gt;&lt

二、redis string类型

是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。 以下是对SortedSet类型的所有操作方法。原码地址:https://github.

1、string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

sp;欢迎在文章下方留言与我讨论,感谢您的阅读 今天写个小文说一说字符串地址和字符串常量。在C/C++中,一个字符串常量表示的是该字符串第一个元素的地址,就跟char指针名,char数组名表

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

y,dataKey,val));}​//获取hashkey所有Rediskey//

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

以加上了const限定。关于这里为什么要加const限定才正确,如果不加的话类型也是匹配的,为什么会报错呢,所以这里需要再强调一下,"1234"是字符串常量,常量不允许被修改,如果char*p="12

以下是对String类型的所有操作方法。

urns>publiclongHashDelete(stringkey,ListdataKeys){key=AddSysCustomKey(key);//Li

原码地址:https://github.com/hailang2ll/DMS/blob/master/src/DMS.Core/DMS.Redis/RedisManager.cs

Key">///可以为负///增长后的值

lt;endl;//获取字符数组a的地址4cout<

量存储在静态存储区,有地址第三条语句是让一个常量指针直接指向静态存储区的"1234"的地址,因为是直接指向本尊地址,所以要加上const限定符而第一条语句则是将静态存储区的"1234"的副本拿出来复制

mmary>///移除hash中的某值/

接着进入目录,运行ll命令查看该目录下有一个dump.rdb文件,该文件就是redis数据备份文件:[root@localhost~]#cd/var/lib/redis[root@localhostr

区别之处在字符数组a中,a表示第一个字符的地址,a+1表示第二个字符的地址;在第一条打印地址的语句中,(int*)a只是起到了一个强制类型转换的作用,换句话说,a表示第一个字符的地址,但是cout&l

指针p指向“1234”就没有问题啦,地址对地址嘛,但是编译后出错了,理由是"1234"是一个常量,所以加上了const限定。关于这里为什么要加const限定才正确,如果不加的话

入队/

;/param>///publicListListRange(stringkey){key=Ad

命名为dump.rdb.back。(可以使用FTP) 新服务器连新服务器,进入到redis数据备份存放的目录:[root@localhost~]#cd/var/lib/redis[root@

ashGet(key,dataKey);returnConvertObj(value);});}​//为数字增长val///

e=redisManager.StringGet("dylan");Console.WriteLine($"获取缓存值为:{value}"); 三、redis list类型1、Re

/summary>publicvoidUnsubscribeAll(){ISubscribersub=_conn.GetSubscriber();sub.UnsubscribeAll();}​#

t;///移除hash中的多个值/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值