Redis基础、应用、第三方支持组件总结

news/2024/7/7 21:50:05

这段时间一直在研究学习Redis的相关知识,现在大概做下总结吧
首先,Redis的基础方面,不说配置,就单单说下Redis数据类型:
Redis 五大数据类型有String 类型,Hash 类型,List 类型,Set 类型,Zset(Sortedset)类型。其中常用的是前三个。
String 是 redis 最基本的类型,一个key对应一个value。

hash 是一个键值对集合,和C# 的Dictionary 类似。
Redis hash 是一个String 类型的 field 和 value 的映射表

List 类型
Redis列表是采用来链表来存储的简单字符串列表,按照插入顺序排序。添加元素一般从链表两端开始。一般消息队列的应用可以直接使用Redis的List数据类型来做处理。获取最新的10个用户的信息,在list链表中只保留最新的10个数据,每次进来一个新数据就删除一条旧数据,从而实现节约数据资源,减少服务器压力。

Set 类型
Redis 的 Set 是String类型的无序集合。它是通过HashTable实现实现的,用法和 List类型很相似。因为我们可以根据集合类型来做一些处理比如交并补集,具体应用场景:QQ好友的推荐

Zset 类型
Redis的zset(sortedset)和set一样也是string类型元素的集合,且不允许有重复的成员。由于是已序集合,可以应用到热门帖子的场景,排序好之后,返回最新的最热的前10个帖子。

对redis的数据类型有足够的了解,可以应用到开发的很多场景,比如消息队列,优先队列,秒杀,最新博客的显示等等。

.NET对Redis的支持还是很好的。一般我们用Redis来存储Session数据,微软给我们提供了一个第三方组件:RedisSessionStateProvider。微软官方还给我们提供了一个基于redis的内存输出缓存的组件:RedisOutputCacheProvider。所以的第三方redis组件一般都是基于Redis客户端实现的,一般是StackExchange.Redis或是其余的客户端。网上有很多人封装好了基于各个客户端的类,我们可以自己去了解。

我一开始是使用RedisSessionStateProvider来存储Session的,其实也还是可以的。不过,后来改变了一种方式,我直接调用封装好的StackExchange.Redis类来做Session处理。

// redis 分布式锁问题

可以使用setnx分布式锁,但是有个致命的缺点,因此可以尝试使用set指令来解决该缺陷。使用set指令来做redis锁,传参分别是key, value, expiretime,nx。因为redis的操作是原子性的。

源码地址:
链接:https://pan.baidu.com/s/1uog3tYkX4wN4pYjryjA8NA 密码:jeqi

参考资料:
用redis来实现Session保存的一个简单Demo
Redis 快速入门

https://github.com/Azure/aspnet-redis-providers/tree/master/src

【新手总结】在.Net项目中使用Redis作为缓存服务
Session分布式共享 = Session + Redis + Nginx

转载于:https://www.cnblogs.com/zhiyong-ITNote/p/9197384.html


http://lihuaxi.xjx100.cn/news/272525.html

相关文章

预训练模型ProphetNet:根据未来文本信息进行自然语言生成

作者 | 刘大一恒、齐炜祯、晏宇、宫叶云、段楠、周明来源 | 微软研究院AI头条(ID:MSRAsia)编者按:微软亚洲研究院提出新的预训练模型 ProphetNet,提出了一种新的自监督学习目标——同时预测多个未来字符,在序列到序列的…

nodejs安装、配置及开发工具

学了node一段时间,但是node的安装还是有一点迷糊。今天新换电脑,所以,需要从头开始,发现node的安装还是不顺畅,这篇随笔是之前学的时候写,但是今天再打开看的时候,发现其他好像没有什么内容&…

ICCV2021论文全汇总!附下载链接

大家好,对于CV领域的小伙伴,特别是从事研究的同学,我们需要不断去跟进一些新的研究成果,因为这些最新的成果,也许能够对当前的研究工作有思路上启发,又或许能够对现有的方案有质的变化!因此&…

HP交换机配置命令

1.命名hostname 7-West-4F-2510 2.设置管理IPvlan 1ip address 192.168.41.123 255.255.255.03.修改支持的默认vlan数max-vlans 64max-vlans //修改vlan的数量,默认只有8个,修改后需重启后才可生效4.重启reload //重启交换机5.配置v…

一套简单通用的Java后台管理系统,拿来即用,非常方便(附项目地址)

点击上方“方志朋”,选择“设为星标”回复”666“获取新整理的面试文章作者:huanzi-qchcnblogs.com/huanzi-qch/p/11534203.html前言 这套Base Admin是一套简单通用的后台管理系统,主要功能有:权限管理、菜单管理、用户管理&#…

DOS批处理高级教程精选(六)

为什么80%的码农都做不了架构师?>>> 第五章 set命令详解 很久没发贴了,今天来写点讲BAT的新手教学贴! 在上一贴中我简单的介绍了一下SET设置自定义变量的作用,现在我来具体讲一下set的其他功能. 一、用set命令设置自定义变量 显示、设置或删除 cmd.exe …

冠军方案分享:ICPR 2020大规模商品图像识别挑战赛冠军解读

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达来源丨新智元编辑丨极市平台赛题介绍随着互联网技术和电子商务的迅猛发展,人们的购物方式逐步由传统实体店购物变为网络购物。为了充分满足客户海量、多样化的网…

python Pool常用函数用法总结

在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下。 1、说明 apply_async(func[,args[,kwds]):使用非堵塞调用func(并行执行,堵塞方式必须等待上一个过程退出才能执行下一个过…