C# Redis安装 使用教程

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: C# Redis安装 使用教程

前言:lz自打工作以来第一次遇到电脑问题需要重装系统,全盘格式化。打击是沉痛的。特别伤。 然后需要重新在本地部署 redis。这是写这篇博客的原因。希望对大家有所帮助,安装资源和引用DLL可以引用 只用于学习 ( windows环境安装 )

一:安装Redis

首先我们需要在本地或是服务器安装Redis。安装包可以去redis官网下载,去Gethub上down 我这里直接给我的百度云

链接:https://pan.baidu.com/s/1WJ48XMaHOmgb1J0KaQkdEw 密码:xjf4 下载后解压

本地的话 你可以直接打开 redis-server.exe这个应用程序。也可以打开cmd命令 然后把路径换成你redis文件的路径 我的是放在 c: edis 可以跟我的来,方便搬运代码 切换文件路径 cd

然后我们启动redis服务,运行 redis-server.exe redis.windows.conf

出现这个界面说明OK了,这个窗口别关 如果关闭了 重新来一遍

继续,再打开一个cmd窗口,切换到redis目录下面

这里解释一下这个 127.0.0.1 是本地访问,相当于localhost 6379是redis默认的端口

继续,redis是存储键值对的所以我们测试一下

set一个 key value

get 一个key

机制就是把数据set 到 redis的数据库里,就是我们说的缓存 用的时候在get取值

接下来我们下载一个redis可视化工具,作用是相当于我们平时使用的数据库 可以去官网上下载,可以我直接上资源,方便 链接:https://pan.baidu.com/s/1K7QtxSVV_15kxP8zkEvIng 密码:k4f8

解压文件,安装成功 打开

字面意思,很简单吧

name 测试阶段随便写 HOST呢 就是主机IP地址 链接上之后 打开我们的DB

crtest666 wuchen 这个键值队是成功添加了的 (关于redis key是名字无所谓 value可以是列表,集合,自由使用,今天先不讲这个)

二:C# 中使用redis(查找,增加,删除的使用)

首先我们需要添加redis的引用。nuget包 搜索redis第一个就是。--StackExchange.Redis

根据运行的环境不同。还需要以下dll

  1.ServiceStack.Common.dll

  2.ServiceStack.Interfaces.dll

  3.ServiceStack.Text.dll

可以去Gethub上去down, https://github.com/ServiceStack/ServiceStack.Redis 真的慢

博主百度云资源: 链接:https://pan.baidu.com/s/1gQLJlIcHhZtPikIgFHnHxA 密码:scqt

Lg:本博一直用win10,按理说只需要这些DLL的 现在装成win7,发现不行了 后来我在Nuget包中添加 RedisHelper,(现在好像直接叫做Redis了,看下备注说明确认一下)

这里举个很简单的使用redis的例子

添加一个控制台应用程序

然后在主程序类 program.cs 代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace crtest
{

class Program
{
    /// <summary>
    /// 基无尘 18-8-31
    /// </summary>
    /// <param name="args"></param>
    static void Main(string[] args)
    {
        Console.WriteLine("Redis写入缓存:wuchengtest"); //添加

        RedisCacheHelper.Add("wuchen", "jiwuchen", DateTime.Now.AddDays(1));

        Console.WriteLine("Redis获取缓存:crtest666");//查找
        string str3 = RedisCacheHelper.Get<string>("crtest666");
        Console.WriteLine(str3);

        RedisCacheHelper.Remove("hellow");//删除
        string str = RedisCacheHelper.Get<string>("hellow");//查看是否删除成功
        Console.WriteLine(str == null ? "未找到" : str);
        Console.ReadKey();
    }
}

}
然后添加一个帮助类 作用类似于我们常用的DbHelper

using ServiceStack.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace crtest
{
public class RedisCacheHelper

{
    private static readonly PooledRedisClientManager pool = null;
    private static readonly string[] redisHosts = null;
    public static int RedisMaxReadPool = 3;
    public static int RedisMaxWritePool = 1;

    static RedisCacheHelper()
    {
        var redisHostStr = "127.0.0.1:6379";

        if (!string.IsNullOrEmpty(redisHostStr))
        {
            redisHosts = redisHostStr.Split(',');

            if (redisHosts.Length > 0)
            {
                pool = new PooledRedisClientManager(redisHosts, redisHosts,
                    new RedisClientManagerConfig()
                    {
                        MaxWritePoolSize = RedisMaxWritePool,
                        MaxReadPoolSize = RedisMaxReadPool,
                        AutoStart = true
                    });
            }
        }
    }

    #region Add
    public static void Add<T>(string key, T value, DateTime expiry)
    {
        if (value == null)
        {
            return;
        }

        if (expiry <= DateTime.Now)
        {

            Remove(key);

            return;
        }

        try
        {
            if (pool != null)
            {
                using (var r = pool.GetClient())
                {
                    if (r != null)
                    {
                        r.SendTimeout = 1000;
                        r.Set(key, value, expiry - DateTime.Now);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "存储", key);
        }

    }


    public static void Add<T>(string key, T value, TimeSpan slidingExpiration)
    {
        if (value == null)
        {
            return;
        }

        if (slidingExpiration.TotalSeconds <= 0)
        {
            Remove(key);

            return;
        }

        try
        {
            if (pool != null)
            {
                using (var r = pool.GetClient())
                {
                    if (r != null)
                    {
                        r.SendTimeout = 1000;
                        r.Set(key, value, slidingExpiration);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "存储", key);
        }
    }

    public static T Get<T>(string key)
    {
        if (string.IsNullOrEmpty(key))
        {
            return default(T);
        }

        T obj = default(T);

        try
        {
            if (pool != null)
            {
                using (var r = pool.GetClient())
                {
                    if (r != null)
                    {
                        r.SendTimeout = 1000;
                        obj = r.Get<T>(key);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "获取", key);
        }


        return obj;
    }
    #endregion

    public static void Remove(string key)
    {
        try
        {
            if (pool != null)
            {
                using (var r = pool.GetClient())
                {
                    if (r != null)
                    {
                        r.SendTimeout = 1000;
                        r.Remove(key);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "删除", key);
        }

    }

    public static bool Exists(string key)
    {
        try
        {
            if (pool != null)
            {
                using (var r = pool.GetClient())
                {
                    if (r != null)
                    {
                        r.SendTimeout = 1000;
                        return r.ContainsKey(key);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            string msg = string.Format("{0}:{1}发生异常!{2}", "cache", "是否存在", key);
        }

        return false;
    }
}

}
OK,生成一下 然后运行看看效果

OK,我们去redis-server上看看效果,也可以用上面的控制台来get 看看效果(cmd命令窗口自始至终都是开着的)

可以看到是成功添加的。好啦

通过简单的两句代码,慢慢发现编程的乐趣

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
19天前
|
开发框架 搜索推荐 算法
一个包含了 50+ C#/.NET编程技巧实战练习教程
一个包含了 50+ C#/.NET编程技巧实战练习教程
69 18
|
16天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
68 14
|
13天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
55 7
|
29天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
103 24
|
19天前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
51 12
|
1月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
139 26
|
22天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
156 7
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
90 4
|
3月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
182 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
2月前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]