redis实战课题

本课题主要围绕用户登录时,直接到redis中查找用户的登录信息,密码验证、重置密码、查询所有用户、显示登录次数最多的前3位
,最后通过(C# SQL)持久化到SQL Server 数据库中。

1、环境搭建
2、介绍客户端API
3、保存【初始化数据到redis】
4、登录【发送登录验证码,有效时间10分钟】
5、重置密码
6、显示登录次数最多的3位用户
7、持久化数据到SQL server 数据库中。

代码块如下

   public List<UserInfo> GetData()
{
//为简便,这里使用穷举例,不从DB中取数 List<UserInfo> list = new List<UserInfo>() { new UserInfo(){Id=1001,Name="李雷1001",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1002,Name="李雷1002",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1003,Name="李雷1003",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1004,Name="李雷1004",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1005,Name="李雷1005",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1006,Name="李雷1006",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1007,Name="李雷1007",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1008,Name="李雷1008",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1009,Name="李雷1009",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1010,Name="李雷1010",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1011,Name="寒梅1011",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1012,Name="寒梅1012",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1013,Name="寒梅1013",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1014,Name="寒梅1014",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1015,Name="寒梅1015",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1016,Name="寒梅1016",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1017,Name="寒梅1017",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1018,Name="寒梅1018",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1019,Name="寒梅1019",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1020,Name="寒梅1020",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1021,Name="寒梅1021",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1022,Name="寒梅1022",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1023,Name="寒梅1023",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1024,Name="寒梅1024",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1025,Name="寒梅1025",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1026,Name="寒梅1026",age=101,Pwd="1234",sex="男",times=DateTime.Now },
new UserInfo(){Id=1027,Name="寒梅1027",age=101,Pwd="1234",sex="男",times=DateTime.Now },
};
return list;
}
public void InitRedisData()
{
List<UserInfo> list = GetData();
using (IRedisClient RClient = RedisManager.GetRedisClient())
{
IRedisTypedClient<UserInfo> IRUserInfo = RClient.As<UserInfo>();
IRUserInfo.StoreAll(list);
//foreach (var item in list)
//{
// RClient.StoreAsHash<UserInfo>(item);
//}
}
}
public void ResetPwd(string id, string pwd, string newpwd)
{
using (IRedisClient RClient = RedisManager.GetRedisClient())
{
IRedisTypedClient<UserInfo> IRUserinfo = RClient.As<UserInfo>();
UserInfo userinfo = IRUserinfo.GetValue("urn:userinfo:" + id);
userinfo.Pwd = newpwd;
IRUserinfo.SetValue("urn:userinfo:" + id, userinfo);
}
}
public List<UserInfo> GetRedisData()
{
List<UserInfo> list = new List<UserInfo>();
using (IRedisClient RClient = RedisManager.GetRedisClient())
{
IRedisTypedClient<UserInfo> IRUserInfo = RClient.As<UserInfo>();
list = (List<UserInfo>)IRUserInfo.GetAll().OrderByDescending(i => i.times).OrderByDescending(i => i.Name).Take(5).ToList();
}
return list;
}

  

redis实战课题的更多相关文章

  1. Redis实战阅读笔记——开始

    Redis实战这本书,看完以后最大的不是redis本身的东西,而是作者面对实际问题的分析而给出的设计方案,可以看成NoSql设计的应用.个人从这方面收获很多,至于Redis本身的东西,这个就花一两个小 ...

  2. Redis实战阅读笔记——第一章

    Redis 实战 中文版 的20-21页看的人郁闷死了,最后看英文版才明白意思,哎,我理解能力差成这样了 其中,图 1-12 有错误,草,这个是英文版的错--应该是group:programming

  3. redis实战(01)_redis安装

    早就想对redis进行实战操作了,最近看了一些视频和参考书籍,总结总结一下,redis实战内容: 实战前先对redis做一个大概的认识: 现在开始安装redis了... redis的安装下载地址 ht ...

  4. C# Redis实战(二) [转]

    二.Redis服务  在C# Redis实战(一)中我将所有文件拷贝到了D盘redis文件夹下,其中redis-server.exe即为其服务端程序,双击即开始运行,如图               ...

  5. (转)国内外三个不同领域巨头分享的Redis实战经验及使用场景

    随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...

  6. C# Redis实战

    转自  :http://blog.csdn.net/qiujialongjjj/article/details/16945569 一.初步准备 Redis 是一个开源的使用ANSI C 语言编写.支持 ...

  7. Redis实战

    大约一年多前,公司同事开始使用Redis,不清楚是配置,还是版本的问题,当时的Redis经常在使用一段时间后,连接爆满且不释放.印象中,Redis 2.4.8以下的版本由于设计上的主从库同步问题,就会 ...

  8. Redis实战之Redis + Jedis

    用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等.基于这些限制,有必要考虑Redis! 相关链接: Redis实战 Redis实战之Redi ...

  9. Redis实战之征服 Redis + Jedis + Spring (一)

    Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)接着需要快速的调研下基于Spring框架下的Redis操作. 相关链接: Redis实战 Re ...

随机推荐

  1. Solution -「CF 1392H」ZS Shuffles Cards

    \(\mathcal{Description}\)   Link.   打乱的 \(n\) 张编号 \(1\sim n\) 的数字排和 \(m\) 张鬼牌.随机抽牌,若抽到数字,将数字加入集合 \(S ...

  2. Java中的Unsafe在安全领域的一些应用总结和复现

    目录 0 前言 1 基本使用 1.1 内存级别修改值 1.2 创建对象 1.3 创建VM Anonymous Class 2 利用姿势 2.1 修改值以关闭RASP等防御措施 2.2 创建Native ...

  3. Gerrit的用法及与gitlab的区别

    来到一个新的团队,开发的代码被同事覆盖了.找同事核实,同事却说根本没有看到我的代码.经过一番沟通了解,原来他们的代码没有直接在gitlab上操作,而是先提交到gerrit,然后在提交到git.但是代码 ...

  4. SaaS平台是什么,为什么字节、腾讯等大厂都在抢相关人才

    SaaS平台很多人可能没听说是什么,但是从事TO  B公司的员工来说,SaaS平台应该都有所耳闻.从2016年开始,腾讯开始发力TO B算起,到处在挖TO B公司的骨干人才,而熟悉SaaS平台的人才竞 ...

  5. 【计理01组30号】Java 实现日记写作软件

    项目分析 代码设计 com.shiyanlou.entity User.java package com.shiyanlou.entity; public class User { private S ...

  6. Python变量与常见数据类型

    Python变量 变量与常量:有时被通称为变量 变量:通常指代能够产生变化的量,多用以描述事物的变化状态 常量:通常指代稳定不产生变化的量,多用于描述事物的固定状态 # 代码层面的使用 myname ...

  7. Windows Server 2012 在桌面上显示”我的电脑”

    转至:https://jingyan.baidu.com/article/f25ef2544f6883482c1b82e5.html Windows Server 2012 沒有快捷方式显示我的电脑到 ...

  8. 来宾账户被视为安全威胁,Windows Server 2012 R2禁用Guest账户

    转至:https://baijiahao.baidu.com/s?id=1646111224229327621&wfr=spider&for=pc 简单介绍Windows Server ...

  9. C# 爬取图片

    网络收集整理  爬取图片 引用AngleSharp  NuGet 包 using AngleSharp; using System; using System.Collections.Generic; ...

  10. LeetCode-056-合并区间

    合并区间 题目描述:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] .请你合并所有重叠的区间,并返回一个不重叠的区间数组, ...