项目引入Jedis

项目中经常访问的且不会经常改动的数据应该放在内存中,以获取用户的更好体验,那么Redis就是一个比较好的选择,这里记录一下项目中引入Jedis的使用步骤,希望对你有所帮助

一,搭建Redis服务器

  • 这里就暂时不介绍了,很简单,网上一抓一大把。。。
  • 需要注:
    • Redis服务器的配置中有一项:protected-mode默认是yes,我们需要把这个置为no,否则是连接不上远程的,记得修改完成后重启或者重新加载配置文件哦

二,配置文件

  1. 配置Redis的properties文件
    redis.hostname=127.0.0.1
    redis.port=6379
    redis.database=0
    redis.pool.maxActive=600
    redis.pool.maxIdle=300
    redis.pool.maxWait=3000
    redis.pool.testOnBorrow=true
    
  2. 编写JedisPoolWrapper类,如下
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    public class JedisPoolWrapper {
        
        private JedisPool jedisPool;
    
        public JedisPoolWrapper(final JedisPoolConfig poolConfig, final String host,
                final int port) {
            try {
                jedisPool = new JedisPool(poolConfig, host, port);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public JedisPool getJedisPool() {
            return jedisPool;
        }
    
        public void setJedisPool(JedisPool jedisPool) {
            this.jedisPool = jedisPool;
        }
    
    }
    
  3. 编写一个JedisUtil,用来封装各种Redis的操作,由于代码太多,就不粘贴了
  4. 在使用Redis的时候其配置如下:
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.pool.maxActive}" />
        <property name="maxIdle" value="${redis.pool.maxIdle}" />
        <property name="maxWaitMillis" value="${redis.pool.maxWait}" />
        <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
    </bean>
    <bean id="jedisWritePool" class="org.shreker.dof.core.cache.JedisPoolWrapper" depends-on="jedisPoolConfig">
        <constructor-arg name="poolConfig" ref="jedisPoolConfig" />
        <constructor-arg name="host" value="${redis.hostname}" />
        <constructor-arg name="port" value="${redis.port}" type="int" />
    </bean>
    <bean id="jedisKeys" class="org.shreker.dof.core.cache.JedisUtil$Keys" scope="singleton">
        <constructor-arg ref="jedisUtil"></constructor-arg>
    </bean>
    <bean id="jedisStrings" class="org.shreker.dof.core.cache.JedisUtil$Strings" scope="singleton">
        <constructor-arg ref="jedisUtil"></constructor-arg>
    </bean>
    <bean id="jedisLists" class="org.shreker.dof.core.cache.JedisUtil$Lists" scope="singleton">
        <constructor-arg ref="jedisUtil"></constructor-arg>
    </bean>
    <bean id="jedisSets" class="org.shreker.dof.core.cache.JedisUtil$Sets" scope="singleton">
        <constructor-arg ref="jedisUtil"></constructor-arg>
    </bean>
    <bean id="jedisHash" class="org.shreker.dof.core.cache.JedisUtil$Hash" scope="singleton">
        <constructor-arg ref="jedisUtil"></constructor-arg>
    </bean>
    <bean id="jedisUtil" class="org.shreker.dof.core.cache.JedisUtil" scope="singleton">
        <property name="jedisPool">
            <ref bean="jedisWritePool" />
        </property>
    </bean>
    

三,代码引入

  1. 不是所有的数据都适合放入Redis的,但是有一条,只要目标数据不是经常修改并且访问量比较大,那么就适合放入Redis;
  2. 注入实例
    @Autowired
    private JedisUtil.Strings jedisStrings;
    @Autowired
    private JedisUtil.Keys jedisKeys;
    
  3. 设置值
    jedisStrings.set(key, jsonString);
    
  4. 获取值
    String result = jedisStrings.get(key);
    
  5. 删除
    jedisKeys.del(key);
    
  6. 根据业务逻辑编写业务...跑起测试...
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • spring 整合 jedis 单机版整合添加配置文件<!-- 连接池配置 --> <!-- 最大连接数 ...
    灰气球阅读 1,507评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 1 Redis介绍1.1 什么是NoSql为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方...
    克鲁德李阅读 5,370评论 0 36
  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,062评论 2 27
  • RedisRedis命令参考网址:http://doc.redisfans.com/ Redis 简介Redis ...
    野柳阅读 1,147评论 0 9