这段时间一直在研究学习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. 获取checkbox勾选的id

    需求描述:做批量删除或者批量修改的时候需要获得多个id,根据checkbox勾选来获取对应的d 两种方法: //html代码<table id="table1"> &l ...

  2. follow

    public function follow(Request $request, FeedModel $model, FeedRepository $repository) { if (is_null ...

  3. Linux基础二:初识linux命令

    一.UNIX和Linux操作系统概述 1.UNIX是什么 1)UNIX的定义: UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序. 2)UNIX操作系统的特点:多用 ...

  4. Python继承、方法重写

    继承 在编写类时,并不是每次都要从空白开始.当要编写的类和另一个已经存在的类之间存在一定的继承关系时,就可以通过继承来达到代码重用的目的,提高开发效率. class one(): "&quo ...

  5. 查看mysql 默认端口号和修改端口号

    1. 登录mysql mysql -u root -p //输入密码 2. 使用命令show global variables like 'port';查看端口号 mysql> show glo ...

  6. Oracle数据库执行exp命令--报参数'log' 不允许有多个值

    前几天设置自动备份oracle 数据库时发现一个问题,自动备份老是执行失败,后来把语句拿出来单独执行才发现是语句写的有问题,一般情况下自动备份都要自动生成日志文件,以便于我们查看备份是否正常执行.下面 ...

  7. 删除Apache服务的命令

    转到\Apache24\bin目录下,使用cmd命令sc delete apache2.2

  8. 为什么dbms_metadata.get_ddl显示不全?

    http://bi.dataguru.cn/thread-335433-1-1.html

  9. Zookeeper(一)CentOS7.5搭建Zookeeper3.4.12集群与命令行操作

    一. 分布式安装部署 1.0 下载地址 官网首页: https://zookeeper.apache.org/ 下载地址: http://mirror.bit.edu.cn/apache/zookee ...

  10. BZOJ3561 DZY Loves Math VI 数论 快速幂 莫比乌斯反演

    原文链接http://www.cnblogs.com/zhouzhendong/p/8116330.html UPD(2018-03-26):回来重新学数论啦.之前的博客版面放在更新之后的后面. 题目 ...