以上就是给各位分享redis重启,自增数据重新开始计算问题,其中也会对redis重启数据还在吗进行解释,同时本文还将给你拓展15.4,redis不重启,切换RDB备份到AOF备份、aspaccess重
以上就是给各位分享redis重启,自增数据重新开始计算问题,其中也会对redis重启数据还在吗进行解释,同时本文还将给你拓展15.4,redis 不重启,切换 RDB 备份到 AOF 备份、asp access重新开始编号、asp.net 删除项目文件/文件夹IIS重启,Session丢失问题、DG:重启之后主备数据重新同步等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- redis重启,自增数据重新开始计算问题(redis重启数据还在吗)
- 15.4,redis 不重启,切换 RDB 备份到 AOF 备份
- asp access重新开始编号
- asp.net 删除项目文件/文件夹IIS重启,Session丢失问题
- DG:重启之后主备数据重新同步
redis重启,自增数据重新开始计算问题(redis重启数据还在吗)
首先,先说一下redis持久化方式
redis有两种持久化方式:
1、RDB:Redis DataBase
默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。
redis.conf 配置
save 900 1
save 300 10
save 60 10000
dbfilename singleton6379.rdb
rdbcompression yes
执行shutdown正常退出会保存数据、执行save命令也会出发保存数据
127.0.0.1:6379> save
127.0.0.1:6379> shutdown
not connected> quit
2、AOF:Append Only File
Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
redis.conf 配置
appendonly yes
# The name of the append only file (default: "appendonly.aof")
appendfilename "appendonly.aof"
# appendfsync always 数据有改变就同步
appendfsync everysec 每秒同步
# appendfsync no 不同步
总结
1、使用AOF模式保存数据,配置文件开启appendonly yes
2、kill redis 之前,先执行 save 命令,触发把内存数据刷到文件
15.4,redis 不重启,切换 RDB 备份到 AOF 备份
确保 redis 版本在 2.2 以上
[root@pyyuc /data 22:23:30]#redis-server -v
Redis server v=4.0.10 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=64cb6afcf41664c
本文在 redis4.0 中,通过 config set 命令,达到不重启 redis 服务,从 RDB 持久化切换为 AOF
实验环境准备
redis.conf 服务端配置文件
daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
dbfilename dbmp.rdb
save 900 1 #rdb机制 每900秒 有1个修改记录
save 300 10 #每300秒 10个修改记录
save 60 10000 #每60秒内 10000修改记录
启动 redis 服务端
redis-server redis.conf
登录 redis-cli 插入数据,手动持久化
127.0.0.1:6379> set name chaoge
OK
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> set addr shahe
OK
127.0.0.1:6379> save
OK
检查 RDB 文件
[root@pyyuc /data 22:34:16]#ls 6379/
dbmp.rdb redis.log
备份这个 rdb 文件,保证数据安全
[root@pyyuc /data/6379 22:35:38]#cp dbmp.rdb /opt/
执行命令,开启 AOF 持久化
127.0.0.1:6379> CONFIG set appendonly yes #开启AOF功能
OK
127.0.0.1:6379> CONFIG SET save "" #关闭RDB功能
OK
确保数据库的 key 数量正确
127.0.0.1:6379> keys *
1) "addr"
2) "age"
3) "name"
确保插入新的 key,AOF 文件会记录
127.0.0.1:6379> set title golang
OK
此时 RDB 已经正确切换 AOF,注意还得修改 redis.conf 添加 AOF 设置,不然重启后,通过 config set 的配置将丢失
asp access重新开始编号
asp.net 删除项目文件/文件夹IIS重启,Session丢失问题
仔细一看,SSO返回的ticket也不相同,才发现原来IIS重启了,最后解决方案如下:新建一个类继承IHttpModule
/// <summary>
/// Stops the ASP.NET AppDomain being restarted (which clears
/// Session state,Cache etc.) whenever a folder is deleted.
/// </summary>
public class StopAppDomainRestartOnFolderDeleteModule : IHttpModule
{
private static bool disableFCNs = false;
public void Init(HttpApplication context)
{
if (disableFCNs) return;
PropertyInfo p = typeof(HttpRuntime).GetProperty("FileChangesMonitor",BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);
object o = p.GetValue(null,null);
FieldInfo f = o.GetType().GetField("_dirMonSubdirs",BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.IgnoreCase);
object monitor = f.GetValue(o);
MethodInfo m = monitor.GetType().getmethod("StopMonitoring",BindingFlags.Instance | BindingFlags.NonPublic);
m.Invoke(monitor,new object[] { });
disableFCNs = true;
}
public void dispose() { }
}
随后在Web.Config中加入Module配置
<!--解决删除项目文件/文件夹引起的IIS重启-->
<add name="stopAppDomainRestartOnFolderDelete" type="DeployAssistant.Facade.Web.StopAppDomainRestartOnFolderDeleteModule,DeployAssistant.Facade"/>