1.官方下载Redis
https://github.com/MSOpenTech/redis/releases目前微软已经暂停了Redis在windows上的移植。所以版本最新到3.2。
实际的Redis在V4.0后已开始收费,目前到V5.0,只支持Linux系统部署。
https://redis.io/
Redis
Redis命令参考即文档
下面接着讲安装,Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择。
下载安装后,目录结构如下:
其中,
redis.windows.conf:配置文件
redis-server.exe:服务端
redis-cli.exe:客户端。
1.首先修改redis.windows.conf
-
定位到bind
- -
这里绑定的是你的Redis安装的本机的访问IP。建议还是用局域网,所以注释掉上面两行bind,端口默认Port是6379,也可以在此修改
-
设置最大内存使用 - 1G,单位是byte
-
设置最大head
-
设置日志目录
-
然后点击redis-server.exe运行
这样就配置完成了。但是这样每次服务器重启后,需要手动运行redis-server.exe,所以我们把redis-server.exe设置到window服务里面,
cd进Redis目录,执行以下命令
redis-server --service-install redis.windows-service.conf --loglevel verbose
输入命令之后没有报错,表示成功了,刷新服务(通过右击计算机,选择管理,打开服务和应用程序下的服务可看到。也能从任务管理器-服务-点击服务按钮 看到),会看到多了一个redis服务。
设置自动启动即可,但是会发现怎么也无法启动,报错:
错误 1067 进程意外终止
研究后发现是logs目录未创建的缘故,我们只要在Redis目录下创建日志目录logs。即可。
2.在项目中引用ServiceStack.Redis
这个也是官方推荐.net使用的Redis库
这个版本需要依赖于其他3个库。
RedisClien是主要操作的类,目前只用到Get,Set。其他的小伙伴可以自行查看。
3.或者在项目中引用另一个Redis驱动StackExchange.Redis
(https://github.com/StackExchange/StackExchange.Redis)
用Redis做小型Asp.net网站的性能优化 - 中使用了StackExchange.Redis
参考https://yq.aliyun.com/ziliao/89080可对StackExchange.Redis做了简单的封装。
4.完成开发上线报错
本地测试无问题,但是上线后会报些奇怪的错误。
Unexpected reply 错误
几次报的都不太一样,但是都和RedisClient.Get相关。
然后详细看了下ServiceStack.Redis的文档,然后发现ServiceStack.Redis不支持我们传统认为的线程安全。
每一个线程可以从连接池里获取一个连接供本线程使用,在使用完毕过后必须还回给连接池
查看了下RedisClient发现继承了IDisposable接口,于是using之后,错误消失。
using (var redisConsumer = new RedisClient(RedisConfig.Host, RedisConfig.Port, RedisConfig.Password))
using (var subscription = redisConsumer.CreateSubscription())
{
}
The free-quota limit on ‘6000 Redis requests per hour’ has been reached.
随后又出现了6000 Redis requests per hour的错误,发现原来ServiceStack.Redis V4以后版本开始商业化,每小时只能请求6000次,所以改成v3.9版本
解决办法
=================================================
其他链接
.net 使用Redis发布订阅