10月17

Redis主从服务器配置

10:20编程杂谈  From: 本站原创
redis作为大家经常使用到的内存级缓存服务器,我们需要保证该服务的高可用性。 这里我介绍最简单的配置方式,使用主从方式集群,并使用sentinel程序来管理主从服务器的切换。下面我们就动手来实现吧.

配置 redis.conf

配置主服务器 master
master中我们除了修改需要使用的端口和绑定的ip地址为,其他的基本保留不变就可以了,当然你也可以按自己的喜欢配置其他参数
配置从服务器 slave
从服务器相对主服务器的配置修改成自己要的端口和绑定的ip外,还需要增加一个slaveof参数 用于指定该服务器的主服务器的ip和端口
配置sentinel服务
我们需要增加sentinel.conf文件配置监控服务的端口,ip地址

port 26379
sentinel myid 4c59c281412c7198c18781846505609a7e70c7dd
sentinel monitor master 127.0.0.1 7001 1
sentinel down-after-milliseconds master 5000
sentinel failover-timeout master 15000


port 指定sentinel服务的端口
myid用于指定该服务的id
montor 主服务器别名 主服务器的ip 端口 切换主从的从服务器投票数
down-after-milliseconds 主服务器别名 指定主服务器检测时间毫秒数
failover-timeout 主服务器别名 切换时间数
10月17
直接上代码

10月17
linux下默认时间为美国纽约时间,与中国北京时间相差8个小时。
我发现使用cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime替换了系统的时间后,虽然date命令中的时间是对的,但是java的Date对象获得的时间依然是相差8个小时。这是为什么呢?经多方查证得出不能使用cp命令直接替换,只能使用ln命令链接时区配置
使用以下命令完美解决了两个时间不一致的问题。

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
10月17
分享一下apache服务器使用htaccess实现301重定向的规则代码。由于nginx服务器对基于动态php语言的wordpress程序执行效率大打折扣,导致服务器cpu常常被php-fpm进程占满卡死,于是我将指南者博客的运行环境切换成了apache,瞬间解决了这个老大难问题!

我的个人博客绑定了很多个域名,但主域名一直是www.heckjj.com,所以需要将其他域名通过301重定向到主域名来避免博客权重的流失。apache与nginx设置301重定向还是有相当大的区别,apache服务器只需将重定向代码保存为名为空后缀为.htaccess的文件,并保存在网站根目录即可。

例子一:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.heckjj.com$ [NC]
RewriteRule ^(.*)$ http://www.heckjj.com/$1 [L,R=301]

以上代码实现了:凡是通过非 www.heckjj.com (第2行中的 www.heckjj.com )访问过来的域名,均会转向到 www.heckjj.com(第3行中的 www.heckjj.com)这个域名;

参数说明:
其中第2行中的 !^www.heckjj.com$ :
! 叹号表示域名的开始;
^ 尖号表示非,即不是以 xxx 开头的;
$ 符号表示域名的结尾。
由此可以看出 !^www.heckjj.com$ 表达的意思就是访问到你服务器的域名不是完全与 www.heckjj.com 相同的域名,就会满足判断的条件,进而触发跳转的操作了。
Tags: , ,
1月23
有时候会需要在模板中直接打印时间的需求,如果输出一个时间还需要在java类中去获取model的话,那未免也太麻烦了,以下为thymeleaf在模板中直接获取时间戳并格式化输的代码

获取时间戳



格式化时间

注:[[${}]]这种格式为内联,你也可以使用th:text="${}"

以上为直接在thymeleaf中获取时间戳和格式化时间输入的实例
12月25
搭建了个springboot项目,使用maven分了几个模块,引用的共用模块中有使用shiro.

但另外一个模块里面是一个独立的Restful接口。不需要用到shiro。一开始的思路是在配置文件中去掉shiro。但是因为shiro的注解已经使用@configuration注入。又不好修改公用代码,于是在springboot的启动类中加入如下代码。问题解决。




第一个注解后面的选项只能摒弃springboot的自动注入类,第二个才是抛弃自定义类的正确方式。
12月5
Axure版本更新到8.1.0.3377后,原来的授权码不能用了,就在网上重新搜了一下,整理下,留个记录。

Axure RP 8.1.0.3377—-亲测可用
Licensee:
zdfans.com
Key:
gP5uuK2gH+iIVO3YFZwoKyxAdHpXRGNnZWN8Obntqv7++FF3pAz7dTu8B61ySxli

Licensee:
zdfans
Key:
fZw2VoYzXakllUuLVdTH13QYWnjD6NZrxgubQkaRyxD5+HNMqdr+WZKkaa6IoE5N

Licensee:
zd423
Key:
LrZoHQetrL7OK8XOVWgvTFn+XOR32hQkrxkYj0CkbDUsvvENp6GCS38B8GiOS1ec
Tags: ,
6月13
springboot 自带了jackson来处理时间,但不支持jdk8 LocalDate、LocalDateTime的转换。
对于Calendar、Date二种日期,转换方式有二种:
一、统一application.properties属性配置文件中加入
spring.jackson.dateFormat=yyyy-MM-dd HH:mm:ss
如果你使用了joda第三包下的时间类型,
spring.jackson.jodaDateTimeFormat=yyyy-MM-dd HH:mm:ss
此方法为全局格式,没办法处理差异化。
二、使用jackson的时间注解@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
需要在每个日期类型上都添加,增加代码量,但更灵活性。

以上二方法不能对jdk8 LocalDate、LocalDateTime起作用,还需要添加jackson转换包,在pom.xml添加
<dependency>
          <groupId>com.fasterxml.jackson.datatype</groupId>
          <artifactId>jackson-datatype-jsr310</artifactId>
          <version>2.9.0</version>
</dependency>
才能生效。
5月2
在新建多模块maven工程,一般会新建一个parent模块,在该模块pom中会添加打包插件,
<!-- 添加spring-boot的maven插件 -->
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>build-info</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <target>${java.version}</target>
                    <source>${java.version}</source>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

当然我们一般还会新建一个通用模块作为工具包之类使用,该模块pom会继承于parent。此时如果parent中pom添加的build插件,没有使用pluginManagement标签,在打包common模块时就会提示找不到main入口。
3月8
很多MySQL程序都会带有匿名登录的功能。

在刚刚安装完MySQL之后,就能够登录数据库啦。

这对于平时使用MySQL来说也基本没有什么,可是假设我们想部署数据库的时候。这样的登录方式式绝对不能存在的!试想一下,假设你的数据库随便就能够进入的话,我想你一定会在半夜收到电话,说数据出问题啦!

以下介绍一下删除匿名用户的方式:


首先使用命令进入数据库


[root@localhost raul]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


然后切换数据库,进入我们须要操作的数据库mysql
分页: 7/53 第一页 上页 2 3 4 5 6 7 8 9 10 11 下页 最后页 [ 显示模式: 摘要 | 列表 ]