一、window上面安装reids
在github上面下载,地址
安装完成后,进入安装目录打开redis服务,
这里双击Redis服务器即可启动Redis。
二、安装redis可视化工具
命令行操作redis非常不方便。下载安装redis客户端,下载地址:https://redisdesktop.com/download
或者百度网盘:
链接:https://pan.baidu.com/s/196WnRU-4uBcUNVi_2W7KJA
提取码:8pwx
三、配置redis连接
打开redis.windows.conf文件,打开它,找到# requirepass foobared (#打头的表示此行是注释说明状态,去掉#就是配置状态),我们修改下,去掉#,配置一个密码
目前就用他原始的
打开客户端,连接服务器
这里对Redis数据库的配置进行了详细说明,部分配置选项如下:
daemonize:是否以后台进程运行,默认为no。Windows下不支持修改 。Linux平台下可以改为yes,这样就不用为了启动Redis而单独保留一个shell窗口。
pidfile:如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid。Windows下不支持修改。
bind:绑定主机IP,默认值为127.0.0.1(注释)
protected-mode:以保护模式运行,默认yes
port: 监听端口,默认为6379
timeout: 超时时间,默认为300(秒)
loglevel: 日志记录等级,有4个可选值,debug,verbose(默认值),notice,warning
logfile: 日志记录方式,默认值为stdout
databases: 可用数据库数,默认值为16,默认数据库为0
save <seconds> <changes>: 指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。
save 900 1 900秒(15分钟)内至少有1个key被改变
save 300 10 300秒(5分钟)内至少有300个key被改变
save 60 10000 60秒内至少有10000个key被改变
rdbcompression: 存储至本地数据库时是否压缩数据,默认为yes
dbfilename: 本地数据库文件名,默认值为dump.rdb
dir: 本地数据库存放路径,默认值为 ./
slaveof: <masterip> <masterport> 当本机为从服务时,设置主服务的IP及端口(注释)
masterauth: <master-password> 当本机为从服务时,设置主服务的连接密码(注释)
requirepass 连接密码(注释)
maxclients: 最大客户端连接数,默认不限制(注释)
maxmemory <bytes>: 设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。(注释)
appendonly: 是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no
appendfilename: 更新日志文件名,默认值为appendonly.aof(注释)
appendfsync: 更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。
vm-enabled: 是否使用虚拟内存,默认值为no
vm-swap-file: 虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm-max-memory: 将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。
参考文献:https://www.jianshu.com/p/e90317668ae2
四、注册redis
在web.core里面model的PreInitialize中注册redis,代码如下
//配置使用Redis缓存 Configuration.Caching.UseRedis(); //配置所有Cache的默认过期时间为2小时 Configuration.Caching.ConfigureAll(cache => { cache.DefaultSlidingExpireTime = TimeSpan.FromHours(2); }); //配置指定的Cache过期时间为10分钟 Configuration.Caching.Configure("ControllerCache", cache => { cache.DefaultSlidingExpireTime = TimeSpan.FromMinutes(10); });
在appsettings.json中添加
"RedisCache": { "ConnectionString": "localhost:5001,password=foobared", "DatabaseId": "-1" },
在代码中添加测试方法,注意要先依赖注入cacheManager
public void TestRedis() { var list = _testRepository.GetAll(); _cacheManager.GetCache("TestRedis").Set("test", list); }
在redis中看可以查看我们插入的数据了