Redis入门教程:创建一个简单的Redis组件

在软件开发这个利润丰厚且极其耗费精力的领域,最近一次搜索之旅(通常从Google开始,以CodeProject结束)让置身于一个充满诱惑的雷区。这个雷区包含了如此多的功能,以至于开始怀疑——没有它人们是如何生存的?说的是被称为Redis的NoSQL键值存储。在继续阅读本文之前,建议先浏览一下这个网站。在本文中,将指导创建一个非常简单的Redis组件(一个Windows控制台应用程序),该程序接受用户输入的字符串并将其存储在Redis中。还将描述这个存储的字符串将如何被另一个应用程序读取。

本系列文章的基本思想是介绍使用Redis作为数据库的概念,用于实际的数据在一系列松散耦合组件之间的移动。由于松散耦合的组件最有可能需要高内聚,希望引导使用Redis来实现这一目的。之所以加入Redis的行列,是因为数据可以在一个高度自由的环境中更快地移动。但请注意,与传统数据库(如Oracle、MySQL、SQL Server等)不同,Redis是非持久性的:如果服务器关闭,数据将丢失。但不用担心,因为Redis支持数据的持久性,条件是它发生在间隔或手动请求时。现在,让继续。

使用代码

要使用此代码,请在VB.NET中创建一个Windows控制台应用程序项目(使用.NET 3.5)。不推荐使用.NET 4,因为Redis库是用3.5编写的,而在.NET 4项目中使用该库时存在一些未解决的问题。此操作的先决条件是:

  • 基本的VB.NET编程知识 - 不会解释如何获取用户输入。
  • 项目所需的Redis库文件(ServiceStack)
  • Redis服务器可执行文件(Google Code)
  • 信念的飞跃

创建项目。

向ServiceStack库中的所有DLL添加引用。

接受用户输入到一个变量。

Imports ServiceStack.Redis ''' ''' Redis存储封装类,围绕ServiceStack Redis客户端 ''' ''' ''' 这个类是在教程中累积构建的,并且没有中断。 ''' Public Class RedisStore #Region " Properties " Private _sourceClient As RedisClient Public ReadOnly Property SourceClient() As RedisClient Get Return _sourceClient End Get End Property #End Region #Region " Constructors " Public Sub New() MyClass.New(False) End Sub Public Sub New(ByVal ForceCheckServer As Boolean) _sourceClient = New RedisClient() If ForceCheckServer AndAlso Not IsServerAlive() Then Throw New Exception("服务器尚未启动!") End If End Sub #End Region Public Function IsServerAlive() As Boolean Try Return SourceClient.Ping Catch ex As Exception Return False End Try End Function #Region " Functionalities " #Region " Get/Set Keys " Public Function SetKey(ByVal key As String, ByVal value As String) As Boolean Return SourceClient.Set(key, value) End Function Public Function SetKey(Of T)(ByVal key As String, ByVal value As T) As Boolean Return SourceClient.Set(Of T)(key, value) End Function Public Function GetKey(ByVal key As String) As String Return Helper.GetString(SourceClient.Get(key)) End Function Public Function GetKey(Of T)(ByVal key As String) As T Return SourceClient.Get(Of T)(key) End Function #End Region #End Region End Class Public Class Helper Private Shared ReadOnly UTF8EncObj As New System.Text.UTF8Encoding() Public Shared Function GetBytes(ByVal source As Object) As Byte() Return UTF8EncObj.GetBytes(source) End Function Public Shared Function GetString(ByVal sourceBytes As Byte()) As String Return UTF8EncObj.GetString(sourceBytes) End Function End Class

将字符串传递给RedisStore类的SetKey函数以存储它,并调用GetKey函数来检索它。还会注意到Redis允许使用GetKey(Of T)函数将其整个对象存储在其存储中!

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485