1. Jedis

Java 连接 redis 服务 Jedis、SpringData Redis、Lettuce

  • 导入jar包
  1. //获取连接
  2. Jedis jedis =new Jedis("192.168.130.128",6379);
  3. jedis.auth("123456");
  4. //执行
  5. jedis.set("name2","123");
  6. System.out.println(jedis.get("name"));
  7. //关闭连接
  8. jedis.close();

2. 连接池

导入jedis.jar commons-pool.jar

  1. private static int MaxTotal, maxIdel, port;
  2. private static String host;
  3. private static JedisPoolConfig jpc;
  4. private static JedisPool jp;
  5. static {
  6. ResourceBundle bundle = ResourceBundle.getBundle("笔记/redis/src/redis");
  7. MaxTotal = Integer.parseInt(bundle.getString("redis.maxTotal"));
  8. maxIdel = Integer.parseInt(bundle.getString("redis.maxIdel"));
  9. host = bundle.getString("redis.host");
  10. port = Integer.parseInt(bundle.getString("redis.port"));
  11. jpc = new JedisPoolConfig();
  12. jpc.setMaxTotal(MaxTotal);
  13. jpc.setMaxIdle(maxIdel);
  14. jp = new JedisPool(jpc, host, port, 2000, "123456");
  15. }
  16. public static Jedis getJedis() {
  17. return jp.getResource();
  18. }

创建 redis.properties

  1. redis.maxTotal=50
  2. redis.maxIdel=10
  3. redis.host=192.168.130.128
  4. redis.port=6379

3. 持久化

03. Jedis - 图1

3.1. RDB

  • save 保存
  1. dbfilename "dump-6379.rdb" #rdb快照保存的文件名 不设置也有默认名当save执行时
  2. rdbcopression yes #存储到本地是否压缩 默认为yes no则不压缩
  3. rdbchecksum yes #设置读写文件过程是否进行RDB格式校验 默认为yes

save指令会阻塞当前服务器直到RDB完成 线上不建议使用

  • bgsave 后台保存

03. Jedis - 图2

  • save second changes 设置自动持久化 满足限定时间内key的变化数据则进行save
  1. #在redis配置文件中设置
  2. save second changes #设置自动持久化 如:save 10 2 10秒中2个key发生变化 自动保存

03. Jedis - 图3

03. Jedis - 图4

  • debug reload 服务器运行过程中重启 也会执行一次RDB
  • shutdown save 关闭服务器并save

3.2. AOF

配置文件

  1. appendonly yes #开启AOF持久化 默认为no不开启
  2. appendfilename appendonly-6379.aof # 保存文件名 有默认名
  3. appendfsync always|everysec|no #AOF写数据策略 默认为everysec
  4. #always 每次写入操作同步到AOF中
  5. #everysec 每秒将缓冲区的同步到AOF
  6. #no 系统控制 整个过程不可控

RDB和AOF都是影响了数据库的数据才作记录

  • bgrewriteaof 后台重写aof 将aof文件进行压缩简化合并

03. Jedis - 图5

03. Jedis - 图6