SSM Redis集群和单机

本文详细介绍了如何在项目中集成Redis,包括pom.xml中添加依赖、创建Redis操作接口及其实现类,以及在Spring配置文件中设置Redis集群或单机版的连接参数。并通过在Service层使用Redis缓存策略,提高数据读取效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、pom加入包

<!--json -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.28</version>
    </dependency>
    <!--redis -->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
    </dependency>
    <!-- spring-data-redis 依赖-->
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-redis</artifactId>
      <version>1.7.1.RELEASE</version>
    </dependency>

二、创建一个interface:

package com.mvc.util;

import java.util.List;

public interface IRedis {
    String set(String key,String value);
    String get(String key);
    Boolean exists(String key);
    Long expire(String key,int seconds);
    Long ttl(String key);
    Long incr(String key);
    String hget(String key,String field);
    Long hset(String key, String field, String value);
    Long hdel(String key,String... field);
    Boolean hexistes(String key,String field);
    List<String> hvals(String key);
    Long del(String key);
}

三、连接集群:创建class,继承接口:

package com.mvc.util;

import java.util.List;

import redis.clients.jedis.JedisCluster;

public class Cluster implements IRedis {

    private JedisCluster jedisCluster;


    public JedisCluster getJedisCluster() {
        return jedisCluster;
    }

    public void setJedisCluster(JedisCluster jedisCluster) {
        this.jedisCluster = jedisCluster;
    }

    @Override
    public String set(String key, String value) {
        // TODO Auto-generated method stub
        return jedisCluster.set(key, value);
    }

    @Override
    public String get(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.get(key);
    }

    @Override
    public Boolean exists(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.exists(key);
    }

    @Override
    public Long expire(String key, int seconds) {
        // TODO Auto-generated method stub
        return jedisCluster.expire(key, seconds);
    }

    @Override
    public Long ttl(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.ttl(key);
    }

    @Override
    public Long incr(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.incr(key);
    }

    @Override
    public String hget(String key, String field) {
        // TODO Auto-generated method stub
        return jedisCluster.hget(key, field);
    }

    @Override
    public Long hset(String key, String field, String value) {
        // TODO Auto-generated method stub
        return jedisCluster.hset(key, field, value);
    }

    @Override
    public Long hdel(String key, String... field) {
        // TODO Auto-generated method stub
        return jedisCluster.hdel(key, field);
    }

    @Override
    public Boolean hexistes(String key, String field) {
        // TODO Auto-generated method stub
        return jedisCluster.hexists(key, field);
    }

    @Override
    public List<String> hvals(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.hvals(key);
    }

    @Override
    public Long del(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.del(key);
    }

}

四、在Spring xml文件,进行配置:

<bean id="cluster" class="com.mvc.util.Cluster">
        <property name="JedisCluster" ref="jedisCluster"/>
    </bean>

    <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
        <constructor-arg name="nodes">
            <set>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6379"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6380"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6381"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6382"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6383"/>
                </bean>
                <bean class="redis.clients.jedis.HostAndPort">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6384"/>
                </bean>

            </set>
        </constructor-arg>
    </bean>

五、在service层使用,查询时,先从redis中查,如果有,直接返回,没有从数据库中查,将查到的结果放到redis中

单机版(只有Spring xml文件加入的内容和Cluster类不一样)

Cluster类内容改成

package com.mvc.util;

import java.util.List;

import redis.clients.jedis.JedisCluster;

public class Cluster implements IRedis {

    private JedisCluster jedisCluster;


    public JedisCluster getJedisCluster() {
        return jedisCluster;
    }

    public void setJedisCluster(JedisCluster jedisCluster) {
        this.jedisCluster = jedisCluster;
    }

    @Override
    public String set(String key, String value) {
        // TODO Auto-generated method stub
        return jedisCluster.set(key, value);
    }

    @Override
    public String get(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.get(key);
    }

    @Override
    public Boolean exists(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.exists(key);
    }

    @Override
    public Long expire(String key, int seconds) {
        // TODO Auto-generated method stub
        return jedisCluster.expire(key, seconds);
    }

    @Override
    public Long ttl(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.ttl(key);
    }

    @Override
    public Long incr(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.incr(key);
    }

    @Override
    public String hget(String key, String field) {
        // TODO Auto-generated method stub
        return jedisCluster.hget(key, field);
    }

    @Override
    public Long hset(String key, String field, String value) {
        // TODO Auto-generated method stub
        return jedisCluster.hset(key, field, value);
    }

    @Override
    public Long hdel(String key, String... field) {
        // TODO Auto-generated method stub
        return jedisCluster.hdel(key, field);
    }

    @Override
    public Boolean hexistes(String key, String field) {
        // TODO Auto-generated method stub
        return jedisCluster.hexists(key, field);
    }

    @Override
    public List<String> hvals(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.hvals(key);
    }

    @Override
    public Long del(String key) {
        // TODO Auto-generated method stub
        return jedisCluster.del(key);
    }

}

Spring xml文件加入依赖改成

<bean id="redis" class="com.aynu.redis.imp.Redis">  
        <property name="jedispool" ref="jedispool"/>  
       </bean>  
         
       <bean id="jedispool" class="redis.clients.jedis.JedisPool">  
        <constructor-arg name="host" value="192.168.146.128"/>  
        <constructor-arg name="port" value="6379"/>  
       </bean>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值