连接Redis

本节课演示winform中,操作redis,其他项目也是类似,只不过用winform来演示而已。

我们安装了redis后,redis是一个服务,相当于一个独立的程序,那么我们在C# WINFORM中使用它,就需要好像链接数据库一样链接它。

下面是配置它的连接字符串,放到了app.config里面

1. App.config 配置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <!-- Redis连接字符串 -->
    <add name="RedisConnectionString" connectionString="127.0.0.1:6379"/>
    <!-- 简写方式 connectionString="localhost" 默认端口6379 -->
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>Code language: HTML, XML (xml)

连接字符串说明

  • localhost / 127.0.0.1:本地Redis服务
  • 默认端口 6379;非默认端口格式:127.0.0.1:6380
  • 如果Redis设置密码,写法:127.0.0.1:6379,password=你的密码

2. Form1.cs 核心代码

所需NuGet包

StackExchange.Redis

需要引入命名空间

using StackExchange.Redis;
using System.Configuration;Code language: C# (cs)
public partial class Form1 : Form
{
    // Redis数据库操作对象
    private IDatabase db;
    // 读取配置文件连接字符串
    private string ConnectionString = ConfigurationManager.ConnectionStrings["RedisConnectionString"].ConnectionString;
    // 多路复用连接(官方推荐单例,volatile保证线程安全)
    private volatile IConnectionMultiplexer connection;

    public Form1()
    {
        InitializeComponent();
        // 创建连接
        connection = ConnectionMultiplexer.Connect(ConnectionString);
        // 获取默认0号数据库
        db = connection.GetDatabase();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // Set方法:写入缓存(key、value、过期秒数)
        bool res = Set(this.textBox1.Text, this.textBox2.Text, 1000);
        if (res)
        {
            MessageBox.Show("设置成功");
        }
        else
        {
            MessageBox.Show("设置失败");
        }
    }

    /// <summary>
    /// Redis写入字符串键值(简易封装)
    /// </summary>
    bool Set(string key, object data, int cacheTime)
    {
        if (string.IsNullOrEmpty(key)) return false;
        // 设置过期时间
        var expire = TimeSpan.FromSeconds(cacheTime);
        return db.StringSet(key, data.ToString(), expire);
    }
}Code language: C# (cs)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注