mysql_redis_syncer
修改配置文件{
配置mysql中server.cf文件客户端不用改变
修改
/etc/my.cnf.d/server.cnf
打开binlog文件和设置checknum为none,mysql5.6以后默认为crc3
binlog_checksum = none
server_id = 1
log-bin = mysql-bin
binlog_format=row

redis配置文件地址:/etc/redis/redis.conf
将 save "" 注释去掉
通过配置文件方式启动redis,默认启动无法保存更改的配置
启动命令 :redis-server /etc/redis/redis.conf& (后台运行)
报错:Reading the configuration file, at line 504
>>> 'dir /var/lib/redis/'
No such file or directory
在/var/lib 下新建一个redis目录
}
查看binglog的命令终端命令行: mysqlbinlog mysql-bin.000090 --base64-output=decode-rows -v
mysql客户端:show binlog events in 'mysql-bin.000003';
redis内存用完后可以设置的策略:
noeviction(默认策略) :对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)
allkeys-lru :从所有key中使用LRU算法进行淘汰
volatile-lru :从设置了过期时间的key中使用LRU算法进行淘汰
allkeys-random :从所有key中随机淘汰数据
volatile-random :从设置了过期时间的key中随机淘汰
volatile-ttl :在设置了过期时间的key中,根据key的过期时间进行淘汰,越早过期的越优先被淘汰
在redis4.0后支持:
- volatile-lfu:在设置了过期时间的key中使用LFU算法淘汰key
- allkeys-lfu:在所有的key中使用LFU算法淘汰数据
当使用volatile-lru 、volatile-random 、volatile-ttl 这三种策略时,如果没有key可以被淘汰,则和noeviction 一样返回错误
通过命令行设置内存配置策略:config set maxmemory-policy allkeys-lru
内存最大大小:config set maxmemory 100mb
CONFIG REWRITE # 将对配置文件的修改写入到 redis.conf 中
直接修改配置文件设置内存配置策略:maxmemory-policy allkeys-lru
设置内存最大使用大小:maxmemory 100mb
redis的删除策略:①、定时删除 ②、惰性删除 ③、定期删除(通过设置hz来达到,hz为每秒执行多少次检查过期的键(不是全部只随机抽取一部分进行检查))
mysql v4中类型
enum Log_event_type{/**Every time you update this enum ( when you add a type), you have tofix Format_description_event::Format_description_event().*/UNKNOWN_EVENT= 0, 0x00START_EVENT_V3= 1, 0x01QUERY_EVENT= 2, 0x02STOP_EVENT= 3, 0x03ROTATE_EVENT= 4, 0x04INTVAR_EVENT= 5, 0x05LOAD_EVENT= 6, 0x06SLAVE_EVENT= 7, 0x07CREATE_FILE_EVENT= 8, 0x08APPEND_BLOCK_EVENT= 9, 0x09EXEC_LOAD_EVENT= 10, 0x0ADELETE_FILE_EVENT= 11, 0x0B/**NEW_LOAD_EVENT is like LOAD_EVENT except that it has a longersql_ex, allowing multibyte TERMINATED BY etc; both types share thesame class (Load_event)*/NEW_LOAD_EVENT= 12, 0x0CRAND_EVENT= 13, 0x0DUSER_VAR_EVENT= 14, 0x0EFORMAT_DESCRIPTION_EVENT= 15, 0x0FXID_EVENT= 16, 0x10BEGIN_LOAD_QUERY_EVENT= 17, 0x11EXECUTE_LOAD_QUERY_EVENT= 18, 0x12TABLE_MAP_EVENT = 19, 0x13/**The PRE_GA event numbers were used for 5.1.0 to 5.1.15 and aretherefore obsolete.*/PRE_GA_WRITE_ROWS_EVENT = 20, 0x14PRE_GA_UPDATE_ROWS_EVENT = 21, 0x15PRE_GA_DELETE_ROWS_EVENT = 22, 0x16/**The V1 event numbers are used from 5.1.16 until mysql-trunk-xx*/WRITE_ROWS_EVENT_V1 = 23, 0x17UPDATE_ROWS_EVENT_V1 = 24, 0x18DELETE_ROWS_EVENT_V1 = 25, 0x19/**Something out of the ordinary happened on the master*/INCIDENT_EVENT= 26, 0x1A/**Heartbeat event to be send by master at its idle timeto ensure master's online status to slave*/HEARTBEAT_LOG_EVENT= 27, 0x1B/**In some situations, it is necessary to send over ignorabledata to the slave: data that a slave can handle in case thereis code for handling it, but which can be ignored if it is notrecognized.*/IGNORABLE_LOG_EVENT= 28, 0x1CROWS_QUERY_LOG_EVENT= 29, 0x1D/** Version 2 of the Row events */WRITE_ROWS_EVENT = 30, 0x1EUPDATE_ROWS_EVENT = 31, 0x1FDELETE_ROWS_EVENT = 32, 0x20GTID_LOG_EVENT= 33, 0x21ANONYMOUS_GTID_LOG_EVENT= 34, 0x22PREVIOUS_GTIDS_LOG_EVENT= 35, 0x23TRANSACTION_CONTEXT_EVENT= 36, 0x24VIEW_CHANGE_EVENT= 37, 0x25/* Prepared XA transaction terminal event similar to Xid */XA_PREPARE_LOG_EVENT= 38, 0x26/**Add new events here - right above this comment!Existing events ( except ENUM_END_EVENT) should never change their numbers*/ENUM_END_EVENT /* end marker */};
浙公网安备 33010602011771号