StackExchange.Redis学习笔记(三)

时间:2022-03-20 16:18:29

这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数

数据库连接

下面是我的连接字符串,里面指定了地址,密码,及默认的数据库

StackExchange.Redis学习笔记(三)

Redis启动后默认会分成0-15个数据库,不同的数据库之间键可以重复,StackExchange.Redis的GetDatabase函数提供一个db的可选参数

StackExchange.Redis学习笔记(三)

默认-1实际上是0,可以通过设置连接字符串里的defaultdatabase来指定连接哪个数据库。

指定数据库的操作比较适合来根据业务来划分

Execute

在StackExchange.Redis中直接执行Redis命令可以通过Execute函数,但是对于大部分命令StackExchange.Redis的Database都会提供方法的封装,所以理论上是不需要调用Execute函数的

下面的代码等同于调用IDatabaseStringSetStringGet函数

StackExchange.Redis学习笔记(三)

GetServer

然而有一些比较常用的功能,却无法通过IDabaBase中提供的函数来执行,比如Keys,Flushdb,Scan等。这是为什么呢?

原因在于StackExchange.Redis提供的StringSet,SetAdd等函数是面向数据库集群的,所以实际上添加一个键并不一定是添加在某一台服务器上的。

而FlushDb等操作是针对一个具体的服务器(Server)上的一个数据库的操作。试想如果提供了一个针对整个集群的flushDb操作,万一误删了,后果不可想象。。。

当然StackExchange.Redis也提供了针对Server的相关函数。可以通过ConnectionMultiplexer 实例的GetServer指定具体的Server,这里需要设置具体的服务器地址及端口号。

然后就可以调用其提供的相关函数了

StackExchange.Redis学习笔记(三)

StackExchange.Redis学习笔记(三)

关于Server的服务器地址参数我们也并不需要手写,Connection已经提供了一个GetEndPoints函数,直接调用即可

StackExchange.Redis学习笔记(三)