博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第17章 Redis概述
阅读量:5270 次
发布时间:2019-06-14

本文共 5087 字,大约阅读时间需要 16 分钟。

17.2.1 在Windows下安装Redis

https://github.com/ServiceStack/redis-windows/tree/master/downloads

 

redis-server redis.windows.conf

17.3.1 在Java程序中使用Redis

http://mvnrepository.com/artifact/redis.clients/jedis/2.9.0

         Java连接Redis

package com.ssm.chapter17.jedis;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class JedisTest {   public void testJdedis(){   Jedis jedis = testPool().getResource();      //Jedis jedis = new Jedis("localhost", 6379);//连接Redis   //jedis.auth("password");//如果需密码       int i =0;//记录操作次数   try{   long start = System.currentTimeMillis();// 开始毫秒数   while(true){       long end = System.currentTimeMillis();       if (end-start >= 1000) {
// 当大于等于1000毫秒(相当于1秒)时,结束操作 break; } i++; jedis.set("test" + i, i + ""); } } finally{
// 关闭连接 jedis.close(); } System.out.println("redis每秒操作:" + i + "次");//打印1秒内对Redis的操作次数 }}

       使用Redis连接池

private JedisPool testPool(){    JedisPoolConfig poolCfg = new JedisPoolConfig();    // 最大空闲数    poolCfg.setMaxIdle(50);    // 最大连接数    poolCfg.setMaxTotal(100);    // 最大等待毫秒数    poolCfg.setMaxWaitMillis(20000);    // 使用配置创建连接池    JedisPool pool = new JedisPool(poolCfg, "localhost");        // 从连接池中获取单个连接    Jedis jedis = pool.getResource();    // 如果需密码    // jedis.auth("password")      return pool;        }
package com.ssm.chapter17.main;import com.ssm.chapter17.jedis.JedisTest;public class Chapter17Main {   public static void main(String[] args) {       testJedis();}   private static void testJedis() {       JedisTest jedisTest = new JedisTest();       jedisTest.testJdedis();   }}

17.3.2 在Spring中使用Redis

    使用Spring配置JedisPoolConfig对象

    配置JedisConnectionFactory

       配置Spring RedisTemplate

       使用Redis保存角色类对象

package com.ssm.chapter17.pojo;import java.io.Serializable;/** * 注意,对象要可序列化,需要实现Serializable接口,往往要重写serialVersionUID *  * @author zhongzh * */public class Role implements Serializable{    /**     *      */    private static final long serialVersionUID = 6977402643848374753L;      private long id;        private String roleName;        private String note;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getRoleName() {        return roleName;    }    public void setRoleName(String roleName) {        this.roleName = roleName;    }    public String getNote() {        return note;    }    public void setNote(String note) {        this.note = note;    }        }

        使用RedisTemplate保存Role对象

private static void testSpring() {       ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");       RedisTemplate redisTemplate = applicationContext.getBean(RedisTemplate.class);       Role role = new Role();       role.setId(1L);       role.setRoleName("role_name_1");       role.setNote("role_note_1");       redisTemplate.opsForValue().set("role_1", role);       Role role1 = (Role) redisTemplate.opsForValue().get("role_1");       System.out.println(role.getRoleName());   }

         使用SessionCallback接口

private static void testSessionCallback(){       ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");       RedisTemplate redisTemplate = applicationContext.getBean(RedisTemplate.class);       Role role = new Role();       role.setId(1);       role.setRoleName("role_name_1");       role.setNote("role_note_1");       SessionCallback
sessionCallback = new SessionCallback
() { public Role execute(RedisOperations ops) throws DataAccessException { // TODO Auto-generated method stub ops.boundValueOps("role_1").set(role); return (Role) ops.boundValueOps("role_1").get(); } }; Role savedRole = (Role) redisTemplate.execute(sessionCallback); System.out.println(savedRole.getId()); }

应改为:

private static void testSessionCallback(){       ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");       RedisTemplate redisTemplate = applicationContext.getBean(RedisTemplate.class);       final Role role = new Role();       role.setId(1);       role.setRoleName("role_name_1");       role.setNote("role_note_1");       SessionCallback
sessionCallback = new SessionCallback
() { public Role execute(RedisOperations ops) throws DataAccessException { // TODO Auto-generated method stub ops.boundValueOps("role_1").set(role); return (Role) ops.boundValueOps("role_1").get(); } }; Role savedRole = (Role) redisTemplate.execute(sessionCallback); System.out.println(savedRole.getId()); }

 

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/8099358.html

你可能感兴趣的文章
Python并发编程04/多线程
查看>>
CF461B Appleman and Tree
查看>>
CF219D Choosing Capital for Treeland
查看>>
杂七杂八的小笔记本
查看>>
51Nod1353 树
查看>>
CF1215E Marbles
查看>>
BZOJ2339 HNOI2011卡农(动态规划+组合数学)
查看>>
octave基本操作
查看>>
axure学习点
查看>>
WPF文本框只允许输入数字[转]
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
使用XML传递数据
查看>>
TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
查看>>
0925 韩顺平java视频
查看>>
iOS-程序启动原理和UIApplication
查看>>
mysql 8.0 zip包安装
查看>>
awk 统计
查看>>
CSS min-height 属性
查看>>
模板设计模式的应用
查看>>