多线程模拟高并发情况redis 与数据库缓存不一致

该博客通过Java实现了一个模拟高并发场景的示例,探讨了如何使用队列来解决Redis与数据库缓存不一致的问题。在示例中,创建了两个线程,一个用于删除Redis中的数据并延迟更新数据库,另一个用于在Redis中不存在数据时从数据库查询。通过线程同步和休眠机制,展示了如何避免并发导致的数据不一致。
摘要由CSDN通过智能技术生成
import com.mysql.jdbc.Connection;
import entity.User;
import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.sql.*;
import java.util.LinkedList;

/**
 * @描述  队列解决高并发,redis,缓存与数据库不一致问题
 * @参数 $
 * @返回值 $
 * @创建人 yufeng.lin@ucarinc.com
 * @创建时间 $
 * @修改人和其它信息
 */



public class TestQueueSolution {


    //获得mysqlconnection
    public Connection getMysqlConn() {
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/redistest?useSSL=false";
        String username = "root";
        String password = "root";
        Connection conn = null;
        try {
            Class.forName(driver); //classLoader,加载对应驱动
            conn = (Connection) DriverManager.getConnection(url, username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public User execQuerySql(Connection connection,String sqlStr, LinkedList parms) throws SQLException {
        PreparedStatement pstmt = null;
        ResultSet resultSet = null;
        pstmt = connection.prepareStatement(sqlStr);
        for (int i = 1 ; i <= parms.size() ; i+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值