这段时间一直在研究学习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

Redis基础、应用、第三方支持组件总结的更多相关文章

  1. 一起写框架-Ioc内核容器的实现-基础功能-ComponentScan支持组件注解限制(七)

    实现功能 以上的代码我们发现.我们都是将@ComponentScan扫描的路径下的所有类都加载到容器中的. 而实际需求,我们并不希望所有的类都创建对象,而是加了组件注解@Controller,@Ser ...

  2. mysql主从复制、redis基础、持久化和主从复制

    一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...

  3. Redis基础用法、高级特性与性能调优以及缓存穿透等分析

     一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...

  4. Redis基础、高级特性与性能调优

    本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍.之后概览Redis提供的高级能力,并在部署.维护.性能调优等多个方面进行更深入的介绍和指导. ...

  5. Redis 基础、高级特性与性能调优

    本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍.之后概览Redis提供的高级能力,并在部署.维护.性能调优等多个方面进行更深入的介绍和指导. ...

  6. 【进阶之路】Redis基础知识两篇就满足(一)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第一篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...

  7. redis基础:redis下载安装与配置,redis数据类型使用,redis常用指令,jedis使用,RDB和AOF持久化

    知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作)   2. 数据类型 (重点) (操作) (理解) 3. 常用指令   (操作)   4. Jedis (重点) (操作) ...

  8. Redis基础与性能调优

    Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用. Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hyperloglogs等. ...

  9. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

随机推荐

  1. vue之指令

    一.什么是VUE? 它是构建用户界面的JavaScript框架(让它自动生成js,css,html等) 二.怎么使用VUE? 1.引入vue.js 2.展示HTML <div id=" ...

  2. Python基础之面向对象的软件开发思路

    当我们来到生产环境中的时候,对一个软件需要开发的时候,刚开始也可能会懵逼,挝耳挠腮.不知从何下手,其 实,大家也不要苦恼,这是大多数程序员都会遇到的问题.那么,我们就要想一想了,既然大家都会这样,到低 ...

  3. Fatal error: Uncaught Error: Call to undefined function mysqli_connect()

    sudo apt-get install php7.2-mysql  //版本号肯能不一样 sudo dpkg-reconfigure  php7.2-mysql sudo /etc/init.d/m ...

  4. web.xml中的ContextLoaderListener和DispatcherServlet区别

    ContextLoaderListener和DispatcherServlet都会在Web容器启动的时候加载一下bean配置. 区别在于: DispatcherServlet一般会加载MVC相关的be ...

  5. go的gin框架从请求中获取参数的方法

    前言: go语言的gin框架go里面比较好的一个web框架, github的start数超过了18000.可见此框架的可信度 如何获取请求中的参数 假如有这么一个请求: POST   /post/te ...

  6. P1036 选数 题解

    题目链接https://www.luogu.org/problemnew/show/P1036 题目描述 已知 nnn 个整数 x1,x2,-,xnx_1,x_2,-,x_nx1​,x2​,-,xn​ ...

  7. IntelliJ IDEA 中自动生成 serialVersionUID 的方法

    as, idea plugin中搜如下关键字,并安装该插件: GenerateSerialVersionUID 如上图所示,创建一个类并实现Serializable接口,然后按alt+Enter键,即 ...

  8. Sway

    啥是Sway: http://livesino.net/archives/7520.live 地址:http://sway.com 现在又可以申请了   试试效果

  9. HL7体系入门级介绍【转】

    HL7的简单介绍1)HL7  缩写于Health Level Seven,是创建于1987年,用来发展独立卫生保健行业的电子交换交换标准,经过多年的发展,HL7已经有多个版本,     目前我们 的集 ...

  10. python全栈开发day55-mysql外键的三种变种

    一.昨日内容回顾 二.今日内容总结 三.mysql应知必会 你可以通过INFORMATION_SCHEMA.KEY_COLUMN_USAGE 表来查看. select * from INFORMATI ...