Redis in .NET Core 入门 (1)

Redis(https://redis.io/), 是一个内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

 

安装Redis

我很少在开发机中直接装各种数据库,我一般使用Docker,针对Redis也不例外,我还是使用Docker。

这是Redis在DockerHub里的地址:https://hub.docker.com/_/redis,里面有文档。

启动docker,下载redis镜像:docker pull redis

Redis in .NET Core 入门 (1)

 

然后运行镜像并发布端口6379:

Redis in .NET Core 入门 (1)

 

然后运行redis-cli(这是Redis的一个命令行管理工具):

Redis in .NET Core 入门 (1)

 

进入redis-cli之后,我们可以设置一个key-value来试试:

Redis in .NET Core 入门 (1)

当你输入的时候,它是有提示的。

Redis in .NET Core 入门 (1)

通过get key(key为name),可以获得其对应的值。

 

准备.NET Core项目

建立一个.NET Core 控制台项目,并安装Redis的.NET Core客户端。

Redis有很多C#的客户端,这里有个列表:

我这使用的是 StackExchange.Redis (https://stackexchange.github.io/StackExchange.Redis/)。

安装StackExchange.Redis

 

Redis in .NET Core 入门 (1)

使用StackExchange.Redis

Redis in .NET Core 入门 (1)

ConnectionMultiplexer已经实现了IDisposable接口,之所以没有使用using表达式,是因为该对象应该重复利用的,具体请看文档。

我之前通过redis-cli设置了key为name的值,这里我通过name这个key把相对应的值找出来,并打印在控制台:

Redis in .NET Core 入门 (1)

如果所示,连接上了数据库,并把值输出到了控制台,OK。

使用C#写入值

这个也没什么特别的,看代码:

Redis in .NET Core 入门 (1)

 

运行结果:

Redis in .NET Core 入门 (1)

 

Redis 的数据类型

Redis的主要数据类型有这些:

Key:就是key的意思。。。。

String:字符串

List:有序字符串的集合

Hashes:有点像对象,里面可以有若干个字段,字段都有自己的值,字段和值都是字符串类型的。

Set:无序唯一字符串的集合

Sorted-Set:跟Set很像,但是每一个字符串元素都对应一个浮点数值,该数值叫做分数。它里面的元素通常是按照分数来排序的。

 

Redis 如何持久化

一共有两种方式:

AOF(Append-only file)

RDB(Redis database file)

首先需要知道Redis的操作都是在内存中完成的,因为这样速度快。

AOF

然后你可以启用AOF,它会把每个操作都记录到系统文件里。所以如果Redis服务器重启了,它会根据AOF这个文件来重建整个数据集。

这个文件会很快就变得很大,但是Redis很聪明,它会使用里面最新版本的数据,并压缩文件到可控大小。

RDB

RDB是Redis的默认模式,它有点像数据库的快照,创建一些时间点的数据,如果发生灾难,你可以从这些数据里进行恢复。

当达到一些条件的时候,例如数据集里面在某段时间内新添加了一定条目的数据,Redis就会把数据做个快照,并写入一个RDB文件。

 

最佳实践是两者都用,使用AOF因为其速度和可用性,使用RDB做灾难恢复。

 

Redis的配置文件

https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf 这是Redis 4.0 的一个标准配置文件。

RDB 快照相关

先看快照部分,也就是和RDB有关的部分:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsddx.html