servicestack.redis5.7版本开始支持net core 3.x官网地址:https://servicestack.net/redis下载:Install-Package ServiceStack.Redis或者:<ItemGroup>
<PackageReferenceInclude="ServiceStack.Redis"Version="5.7.0"/>
</ItemGroup>读写分离类:用于获取实例publicclas...
2019-12-02
浏览(10261)
一、缓存穿透 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案: 1:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 2:从缓存取不到的数据,在数据库...
2019-06-05
浏览(8568)
下面是使用ServiceStack.Redis库对redis中的Hash简单的,增删改查操作using(RedisClientclient=newRedisClient("127.0.0.1",6379))
{
//添加/修改
client.SetEntryInHash("userhash","u1","李白");
client.SetEntryInHash("userhash","u2",&quo...
2019-06-03
浏览(12179)
删除以userkey开头的数据redis.RemoveByPattern("userkey*");还可以考虑使用正则表达式删除redis.RemoveByRegex("正则表达式");也可以先使用GetAllKeys方法得到所有的key,然后找到你想删除的干掉就行了redis.GetAllKeys()每个key开头的所有KeyIEnumerable<string>keys=redis.GetKeysByP...
2019-06-02
浏览(9708)
做项目的时候使用的ServiceStack.Redis库操作redis。项目有个小问题,时不时的出现很是奇怪,还以为是集群的问题,一直没有好好去看一下,结果认真一看......发现居然是ServiceStack.Redis库本身的问题删除list的RemoveAllFromList方法会有一个bug下面来做一个简单的测试:staticvoidMain(string[]args)
{
using(...
2019-04-11
浏览(9603)
当主节点运行起,并且有项目在运行与其他子节点运行中,这个时候如果在添加子节点,这个时候可能会造成redis的死锁,一直访问不到。可以先停止一下项目与主节点,然后在重新运行,当然这并不是什么好办法,还是要找到核心原因不停止的情况下去解决才好
2019-03-11
浏览(7584)
redis的内部实现是使用的链表实现的ServiceStack.Redis操作Redis List的增删改查staticvoidMain(string[]args)
{
//链接redis
using(RedisClientredisclient=newRedisClient("localhost:6379"))
{
//清空所有的list
redisclient.RemoveAllFromList("test_users");
//向list添加一些内...
2019-01-21
浏览(16098)
Redis的基本数据类型:基本的键值对List集合Set集合有序Set集合Hash表ServiceStack.Redis操作基本键值对:staticvoidMain(string[]args)
{
//链接redis
using(RedisClientredisclient=newRedisClient("localhost:6379"))
{
redisclient.Set<string>("city","重庆");
/...
2019-01-21
浏览(8134)
hash相关查询hash的所有key:hkey + hash名称查询hash的所有某个key:hget + hash名称+ key名称List相关根据key查询list :lrange key 开始位置 结束位置lrange users 0 10
2019-01-05
浏览(9472)
我携漫天星辰以赠你,仍觉漫天星辰不如你。单利的应该是连接池而不应该是redis对象。如果每次操作都是一个redis对象是会有并发问题的,应该从连接池中去拿。解释半天都没有用直接贴代码吧publicclassSingletonRedis
{
//定义一个静态变量来保存类的实例
privatestaticPooledRedisClientManagerpoolrl;
privat...
2018-12-21
浏览(19190)
添加一个key并设置过期时间(例如这个设置2分10秒后过期)TimeSpants=newTimeSpan(0,2,10);
byte[]intbit=BitConverter.GetBytes(1);
redis.Add("key","value",ts);修改内容并且不影响设置的过期时间//第二个参数是偏移量如果全部修改就设置为0
redis.SetRange("key",0,"value...
2018-12-19
浏览(13245)
1:不要循环去创建对象,循环去访问redis的时候要特别注意,应该传一个集合进去处理,而不是循环去处理2:要注意释放对象,使用using释放对象,如果只创建不释放就会卡死(有些库不是卡死但是在多线程下读取的数量不对,有些连接的数据会丢失) 当然如果觉得每次手动使用using释放麻烦,也担心...
2018-12-12
浏览(8818)
配置连接池与读写分类
//写节点(主节点)
List<string>writes=newList<string>();
writes.Add("123456abcdef@127.0.0.1:6379");
//读节点
List<string>reads=newList<string>();
reads.Add("123456abcdef@127.0.0.1:6379");
reads.Add("123456abcdef@127.0...
2018-12-12
浏览(12343)
官方git开源地址https://github.com/StackExchange/StackExchange.Redis官方文档在docs里边都是官方的文档通过nuget命令下载StackExchange.Redis(net framework,net core都支持) Install-Package StackExchange.Redis -Version 2.0.519 最基本的连接与获取字符串操作staticvoidMain(string[]args)
{
//配...
2018-12-09
浏览(19033)
主从模式:备份数据、负载均衡,一个Master可以有多个Slaves。sentinel(哨兵)发现master挂了后,就会从slave中重新选举一个master。cluster(集群)是为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器。sentinel着眼于高可用,Cluster提高并发量。那么如果,主服务器挂了,我们怎么知道...
2018-12-09
浏览(8865)
启动服务命令 redis-server.exe redis.windows.conf 连接命令 redis-cli.exe -h ip地址 -p 6379 连接本地直接输入 redis-cli命令即可 连接提供密码 连接后可以使用auth命令来 提供密码 没有登录的时候可以在后面使用 -a接密码 redis-cli -h ip地址 -p 6379 -a 密码 退出命令 使...
2018-12-07
浏览(8025)
配置主从节点slaveof127.0.0.16379 可能会遇到持久化错误:Error reply to PING from master: ‘-MISCONF Redis is configured to save RDB snapshots 把stop-writes-on-bgsave-error设置为no 允许远程连接配置 注释掉:bind 127.0.0.1 protected-mode为no 配置登录密码 requirepass 123456(需要登录的密...
2018-12-07
浏览(7842)
配置文件配置密码后启动无效的问题 那是因为redis服务双击启动没法作用上配置文件,你可以在配置在启动命令的时候指定一下配置文件就好了 redis-server.exe redis.windows.conf
2018-12-07
浏览(9519)
使用info replication命令即可。可以查看当前redis是主还是从效果如下:
2018-10-16
浏览(9495)
主节点配置密码的是requirepass从节点的密码配置的地方:masterauth 密码用命令配置主从的时候可以这样设置主节点密码:config set masterauth walplpawxqxayjr
2018-10-13
浏览(7481)
;