Files
egwmultienginemanager/EgwMultiEngineManager.Console/Utility/RedisManager.vb
T

63 lines
2.0 KiB
VB.net

Imports System
Imports StackExchange.Redis
Class RedisManager
' connessione al server Redis
Private m_RedisConnection As ConnectionMultiplexer
Public ReadOnly Property RedisConnection As ConnectionMultiplexer
Get
Return m_RedisConnection
End Get
End Property
' indice del Db Redis
Private m_nRedisDbIndex As Integer = 0
Public ReadOnly Property nRedisDbIndex As Integer
Get
Return m_nRedisDbIndex
End Get
End Property
' Database Redis
Private m_RedisDb As IDatabase
Public ReadOnly Property RedisDb As IDatabase
Get
Return m_RedisDb
End Get
End Property
' gestore sottoscrizioni
Private m_Subscriber As ISubscriber
Public ReadOnly Property Subscriber As ISubscriber
Get
Return m_Subscriber
End Get
End Property
Sub New(sConnection As String, nDbIndex As Integer)
Try
' inizializzo connessione al server Redis
m_RedisConnection = ConnectionMultiplexer.Connect(sConnection)
m_RedisDb = m_RedisConnection.GetDatabase(nDbIndex)
' inizializzo sottoscrizioni
m_Subscriber = m_RedisConnection.GetSubscriber()
'Dim InputChn As New RedisChannel("Messages", RedisChannel.PatternMode.Auto)
'm_Subscriber.Subscribe(InputChn, AddressOf SubscribeHandler)
Catch ex As Exception
System.Console.WriteLine("Redis connection error!! " & Environment.NewLine & ex.Message)
End Try
End Sub
Private Sub SubscribeHandler(RedisChannel As RedisChannel, RedisValue As RedisValue)
System.Console.WriteLine("Ricevuto valore " & RedisValue.ToString() & " dal canale " & RedisChannel.ToString())
End Sub
Friend Sub SubscribeChannel(sName As String, Handler As Action(Of RedisChannel, RedisValue))
m_Subscriber = m_RedisConnection.GetSubscriber()
Dim InputChn As New RedisChannel(sName, RedisChannel.PatternMode.Auto)
m_Subscriber.Subscribe(InputChn, Handler)
End Sub
End Class