redis的使用及主从模式
——Javee
进入redis目录:
编译并安装:make && make install
启动redis:redis-server redis-server redis.conf
进入数据库:redis-cli
关闭数据库:shutdown
退出数据库:exit
连别人的数据库:redis-cli -h 192.168.17.17
再次之前先要修改redis.conf配置文件:
先cp redis.conf redis.conf.cp拷贝一份,以免修改出现问题
69行:bind 0.0.0.0 #所有ip都可以找到redis
88行:protected-mode no #不需要密码
136行:daemonize yes #设为守护进程
这样就可以正常使用redis数据库了~~
Java使用redis的一个小栗子:
package com.seecen.redis;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.HashMap;
import java.util.Map;
/**
* @Author Javee
* @Date 2019/11/11 14:30
* @Description
*/
public class MyRedis {
/**
* 不使用连接池
* @param ip
* @param port
* @return
*/
public Jedis getJedis(String ip, int port){
Jedis jedis = new Jedis(ip, port);
return jedis;
}
@Test
public void testConnect(){
Jedis jedis = getJedis("192.168.184.17", 6379);
//jedis.auth("123456"); //密码
jedis.set("username","admin");
jedis.close();
}
/**
* 使用连接池
*/
private static Map<String, JedisPool> maps = new HashMap<>();
private JedisPool getPool(String ip, int port){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(10);
config.setMaxIdle(5);
config.setMaxWaitMillis(2000);
config.setTestOnBorrow(true);
config.setTestOnReturn(true);
JedisPool pool = new JedisPool(config, ip, port);
return pool;
}
JedisPool pool = null;
@Before
public void init(){
pool = getPool("192.168.184.17", 6379);
}
@After
public void destory(){
pool.close();
}
@Test
public void testSet(){
Jedis jedis = pool.getResource();
jedis.psetex("uname", 9500, "嘉威贼帅");
jedis.close();
}
@Test
public void testGet(){
Jedis jedis = pool.getResource();
String uname = jedis.get("uname");
System.out.println(uname);
jedis.close();
}
}
接下来配置主从模式+哨兵:
修改redis.conf:
171行:logfile "/usr/local/redis/6379.log"
235行:stop-writes-on-bgsave-error yes
241:rdbcompression yes
250:rdbchecksum yes
263:dir "/usr/local/redis/"
287:replicaof 192.168.184.17 6379 #仅随从配置(主人IP)
325:replica-read-only yes
########应该就这些改动的地方,这里记不太清楚了,可以在网上找找其他人的笔记或资料
修改sentinel.conf(第一次修改前先备份一下,良好的习惯):仅哨兵配置
16:bind 0.0.0.0
17:protected-mode no
36:logfile "/usr/local/redis/sentinel.log"
123:sentinel monitor mymaster 192.168.184.17 6379 2
148:sentinel down-after-milliseconds mymaster 10000
配置文件修改好了,之后就是启动:
redis-server redis.conf
redis-sentinel sentinel.conf
OK~~
为了以放万一,我把修改的配置文件上传了,有兴趣的小伙伴可以下载试试~~~