zoukankan      html  css  js  c++  java
  • Redis应用

    一、什么是Redis?

      Redis是一个高性能的key-value内存数据库。


    二、为什么使用Redis?

      Redis是NoSQL数据库,相比传统关系型数据库,内存数据库读写更快。


    三、Redis怎么获取?

      http://www.redis.cn/download.html


    四、Redis环境怎么搭建?

      1、Redis通常部署在Linux上,所以部署的事和监控的事有专门的运维去做;

      2、学习时如果没有Linux环境,可以直接启动一个Windows版的Redis。


    以Windows环境为例:

    五、启动Redis

      1、解压 redis-2.8.zip 中的 redis-2.8in elease edis-2.8.17.zip 到 D: edis 文件夹中

      2、进入D盘命令:d:

         进入redis文件夹命令:cd redis

         启动redis命令:redis-server.exe redis.conf(当然可以用文件夹中的redis.windows.conf,ps:记得修改配置文件的maxmemory 1gb,否则启动将会报错)


    六、客户端连接redis

      命令:redis-cli.exe -h 172.16.10.140(自己的ip) -h 6379

      输入info 命令可以查看redis的相关信息


    如果提示 NOAUTH Authentication required. 需要输入密码  auth + 空格 + 密码

    七、.Net中使用Redis

      下载相关程序包,推荐:ServiceStack.Redis

     1 using ServiceStack.Redis;
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Configuration;
     5 using System.Linq;
     6 using System.Text;
     7 
     8 namespace ConApp_Redis_Test
     9 {
    10     class Program
    11     {
    12         static RedisClient redisClient = new RedisClient(ConfigurationManager.AppSettings["IPAddress"], 6379);//redis服务IP和端口
    13         static string totalCount = ConfigurationManager.AppSettings["TotalCount"];
    14         static string searchCount = ConfigurationManager.AppSettings["SearchCount"];
    15 
    16         static void Main(string[] args)
    17         {
    18             try
    19             {
    20                 redisClient.Password = ConfigurationManager.AppSettings["Password"];
    21                 Console.WriteLine("准备数据中...");
    22 
    23                 int pTotalCount = int.Parse(totalCount);
    24                 int pSearchCount = int.Parse(searchCount);
    25                 DateTime dt_Write = DateTime.Now;
    26                 List<UserModel> userModelList = new List<UserModel>();
    27                 for (int i = 1; i <= pTotalCount; i++)
    28                 {
    29                     UserModel userModel = new UserModel();
    30                     userModel.Id = i;
    31                     userModel.MobileNum = "15200000000".Substring(0, 11 - i.ToString().Length) + i.ToString();
    32                     userModel.OpenId = Guid.NewGuid().ToString().Replace("-", "");
    33                     userModelList.Add(userModel);
    34                 }
    35 
    36                 Console.WriteLine("正在插入数据...");
    37                 if (userModelList != null && userModelList.Any())
    38                 {
    39                     for (int i = 0; i < userModelList.Count; i++)
    40                     {
    41                         UserModel userModel = userModelList[i];
    42                         if ((i + 1) % 10000 == 0)
    43                         {
    44                             Console.WriteLine("当前Id:" + userModel.Id + ",MobileNum: " + userModel.MobileNum + ",OpenId:" + userModel.OpenId);
    45                         }
    46                         redisClient.HSet("User", Encoding.UTF8.GetBytes(userModel.MobileNum), Encoding.UTF8.GetBytes("{Id: " + userModel.Id + ", MobileNum: " + userModel.MobileNum + ", OpenId: " + userModel.OpenId + "}"));
    47                     }
    48                 }
    49                 Console.ForegroundColor = ConsoleColor.Red;
    50                 Console.WriteLine("随机写入" + pTotalCount + "条数据消耗时间为: " + (DateTime.Now - dt_Write).Seconds + ""); ;
    51 
    52                 // 清除控制台颜色
    53                 Console.ForegroundColor = ConsoleColor.White;
    54                 Random randon = new Random();
    55 
    56                 DateTime dt_Read = DateTime.Now;
    57                 for (int i = 1; i <= pSearchCount; i++)
    58                 {
    59                     int index = randon.Next(1, pTotalCount + 1);
    60                     // Console.WriteLine("随机抽选值: " + index);
    61                     string search = "15200000000".Substring(0, 11 - index.ToString().Length) + index.ToString();
    62                     // Console.WriteLine("当前搜索: " + search);
    63 
    64                     //byte[] bytes_Get = redisClient.Get(search);
    65                     //Console.WriteLine(Encoding.UTF8.GetString(bytes_Get));
    66 
    67                     byte[] bytes_HGet = redisClient.HGet("User", Encoding.UTF8.GetBytes(search));
    68 
    69                     if (i % 10 == 0)
    70                     {
    71                         Console.WriteLine(Encoding.UTF8.GetString(bytes_HGet));
    72                     }
    73                 }
    74                 Console.ForegroundColor = ConsoleColor.Red;
    75                 Console.WriteLine("随机读取" + pSearchCount + "条数据消耗时间为: " + (DateTime.Now - dt_Read).Milliseconds + "毫秒"); ;
    76             }
    77             catch (Exception)
    78             {
    79                 Console.WriteLine("出错了...");
    80             }
    81 
    82             Console.ReadKey(true);
    83         }
    84     }
    85 
    86     public class UserModel
    87     {
    88         public int Id { get; set; }
    89         public string MobileNum { get; set; }
    90         public string OpenId { get; set; }
    91     }
    92 }
    View Code

    八、相当文档

      推荐:http://www.redisfans.com/


    九、结语

      redis只是NoSQL的一种,几乎包含所有流行语言的开发包,拥有专门的组织维护,能够成为大多数开发人员首选的NoSQL数据库,肯定在性能上、安全上都做到让人满意的程度了。

      不要局限于redis,可以使用其他的NoSQL数据库,通过实际应用、对比、总结才能得出好坏。

      每天多学一点,量变产生质变。

     

    本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/tq1226112215/
    欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    xcode
    2020上班第一天
    动态网页爬取方法
    静态网页爬虫获取数据的简单方法Xpath
    帆软9.0升级10.0(摘自帆软官方文档)
    linux下安装redis
    linux 命令笔记
    shell 编写mongodb linux下安装脚本
    pl/sql基础之三
    plsql基础二之集合
  • 原文地址:https://www.cnblogs.com/tq1226112215/p/5125349.html
Copyright © 2011-2022 走看看