Jedis&持久化

    技术2025-04-19  11

    Jedis

    编程语言与redis

    Jedis用于Java语言连接redis服务,并提供对应的操作API

    Java语言连接redis服务

    JedisSpringData RedisLettuce

    C 、C++ 、C# 、Erlang、Lua 、Objective-C 、Perl 、PHP 、Python 、Ruby 、Scala

    Jedis HelloWorld

    import redis.clients.jedis.Jedis; public class Demo { public static void main(String[] args) { //连接redis Jedis jedis = new Jedis("IP地址",端口号); //操作redis jedis.set("k", "v"); System.out.println(jedis.get("k")); //关闭redis连接 jedis.close(); } }

    Jedis简易工具类开发

    配置文件
    redis.maxTotal=最大连接数 redis.maxIdel=最大活动连接数 redis.host=服务地址 redis.port=服务端口号
    工具类:
    import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.ResourceBundle; public class JedisUtils { private static int maxTotal; private static int maxIdel; private static String host; private static int port; private static JedisPoolConfig jpc; private static JedisPool jp; static { ResourceBundle bundle=ResourceBundle.getBundle("redis"); maxTotal=Integer.parseInt(bundle.getString("redis.maxTotal")); maxIdel = Integer.parseInt(bundle.getString("redis.maxIdel")); host = bundle.getString("redis.host"); port = Integer.parseInt(bundle.getString("redis.port")); //Jedis连接池配置 jpc = new JedisPoolConfig(); jpc.setMaxTotal(maxTotal); jpc.setMaxIdle(maxIdel); jp = new JedisPool(jpc,host,port); } public static Jedis getJedis(){ return jp.getResource(); } }

    持久化

    持久化简介

    将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据

    将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程

    持久化方式

    RDB : 数据(快照)AOF : 过程(日志)
    RDB

    手动执行一次保存操作

    save

    设置本地数据库文件名,默认值为 dump.rdb,通常设置为dump-端口号.rdb

    dbfilename filename

    设置存储.rdb文件的路径,通常设置成存储空间较大的目录中,目录名称data

    dir path

    设置存储至本地数据库时是否压缩数据,默认yes,设置为no,节省 CPU 运行时间,但存储文件变大

    rdbcompression yes|no

    设置读写文件过程是否进行RDB格式校验,默认yes,设置为no,节约读写10%时间消耗,单存在数据损坏的风险

    rdbchecksum yes|no

    手动启动后台保存操作,但不是立即执行

    bgsave

    后台存储过程中如果出现错误现象,是否停止保存操作,默认yes

    stop-writes-on-bgsave-error yes|no

    设置自动持久化的条件,满足限定时间范围内key的变化数量达到指定数量即进行持久化 (second:监控时间范围 changes:监控key的变化量)

    save second changes

    AOF

    开启AOF持久化功能,默认no,即不开启状态

    appendonly yes|no

    AOF持久化文件名,默认文件名为appendonly.aof,建议配置为appendonly-端口号.aof

    appendfilename filename

    AOF持久化文件保存路径,与RDB持久化文件保持一致即可

    dir

    AOF写数据策略,默认为everysec

    appendfsync always|everysec|no
    RDB VS AOF
    持久化方式RDBAOF占用存储空间小(数据级:压缩)大(指令级:重写)存储速度慢快恢复速度快慢数据安全性会丢失数据依据策略决定资源消耗高/重量级低/轻量级启动优先级低高
    Processed: 0.008, SQL: 9