java 简单使用redis

1.配置文件

  <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="50" />
        <property name="maxIdle" value="8" />
        <property name="maxWaitMillis" value="1000" />
        <property name="testOnBorrow" value="true"/>
        <property name="testOnReturn" value="true"/>
    </bean>

    <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
        <constructor-arg index="0" ref="jedisPoolConfig" />
        <constructor-arg index="1" value="192.168.1.76" type="java.lang.String"/>
        <constructor-arg index="2" value="6379"  type="int"/>
    </bean>

2.复杂对象,通过序列化成进进制存储到redis中

@Repository("RedisCacheImpl")
public class RedisCacheImpl implements IRedisCache {

    private static final Logger logger = LoggerFactory.getLogger(RedisCacheImpl.class);

    @Autowired(required = false)
    protected JedisPool pool;

    @Override
    public void put(String key, Object value) {
        Jedis jedis = null;
        try {
            jedis = pool.getResource();
            jedis.set(key.getBytes(), SerializeUtil.serialize(value));
        } catch (Exception e) {
            logger.error("redis error:", e);
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }

    @SuppressWarnings({"unchecked"})
    @Override
    public <T> T get(String key) {
        Jedis jedis = null;
        try {
            jedis = pool.getResource();
            byte[] value = jedis.get(key.getBytes());
            if (value == null) {
                return null;
            }
            return (T) SerializeUtil.unSerialize(value);
        } catch (Exception e) {
            logger.error("redis error:", e);
            return null;
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }

    @SuppressWarnings({"unchecked"})
    @Override
    public boolean del(String key) {
        Jedis jedis = null;
        try {
            jedis = pool.getResource();
            return jedis.del(key.getBytes()) > 0;
        } catch (Exception e) {
            logger.error("redis error:", e);
            return false;
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }
}

3.序列化类

public class SerializeUtil {

    private static final Logger logger = LoggerFactory.getLogger(SerializeUtil.class);

    public static byte[] serialize(Object object) {
        ObjectOutputStream oos = null;
        ByteArrayOutputStream baos = null;
        try {
            // 序列化
            baos = new ByteArrayOutputStream();
            oos = new ObjectOutputStream(baos);
            oos.writeObject(object);
            byte[] bytes = baos.toByteArray();
            return bytes;
        } catch (Exception e) {
            logger.error("serializer error:", e);
        }
        return null;
    }

    public static Object unSerialize(byte[] bytes) {
        ByteArrayInputStream bais = null;
        try {
            // 反序列化
            bais = new ByteArrayInputStream(bytes);
            ObjectInputStream ois = new ObjectInputStream(bais);
            return ois.readObject();
        } catch (Exception e) {
            logger.error("serializer error:", e);
        }
        return null;
    }
}
时间: 2024-08-28 15:54:24

java 简单使用redis的相关文章

在java中使用redis

在java中使用redis很简单,只需要添加jedist.jar,通过它的api就可以了.而且,api和redis的语法几乎完全相同.以下简单的测试: 参考:http://www.runoob.com/redis/redis-java.html 1 package com.test.redis; 2 3 import org.junit.Test; 4 import redis.clients.jedis.Jedis; 5 6 import java.util.HashMap; 7 import

从JAVA客户端访问Redis示例(入门)

转自:http://blog.csdn.net/kkdelta/article/details/7217761 本文记录了安装Redis和从JAVA端访问Redis的步骤 从http://download.csdn.net/detail/kkdelta/4034137 下载本文所需文件. 1,在Linux上安装Redis服务. 下面的操作的base dir为 /root/4setup tar xzf redis-2.4.6.tar cd redis-2.4.6 make 安装完后启动 nohup

Redis介绍 &amp;&amp; Java客户端操作Redis

Redis介绍 && Java客户端操作Redis 本文内容 redis介绍 redis的 shell 客户端简介 redis的 java 客户端简介 环境配置 redis 2.8.17 64bit JDK1.6 redis介绍 大多数时候,我们都将 redis 称作是内存数据库,它在运行过程中,将键值对信息存储在内存中,同时在后台以异步的形式写入本地数据库中(默认是:dump.rdb,在 redis.conf 中配置,如果需要考虑安全的持久化需求需要开启 AOF 功能,详细介绍可以查看这

Java项目配置redis

成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 .

Java面试之Redis

179. Redis 是什么?都有哪些使用场景? Redis 是一个使用 C 语言开发的高速缓存数据库. Redis 使用场景: 记录帖子点赞数.点击数.评论数: 缓存近期热帖: 缓存文章详情信息: 记录用户会话信息. 数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列 存储方式不同:memcache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小:Redis 有部份存在硬盘上,这样能保证数据的持久性. 数据支持类型:memcache 对数据类型支持相对简单:Red

CentOS6.4 安装OpenResty和Redis 并在Nginx中利用lua简单读取Redis数据

1.下载OpenResty和Redis OpenResty下载地址:wget http://openresty.org/download/ngx_openresty-1.4.3.6.tar.gz Redis下载地址:wget http://download.redis.io/releases/redis-2.8.6.tar.gz 2.安装依赖包 yum install -y gcc gcc-c++ readline-devel pcre-devel openssl-devel tcl perl

zoj Fibonacci Numbers ( java , 简单 ,大数)

题目 //f(1) = 1, f(2) = 1, f(n > 2) = f(n - 1) + f(n - 2) import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @xqq */ public BigInteger an(int n) { BigInteger c; BigInteger a = BigInteger.valueOf(1); BigInteger b = BigIn

Java 连接使用 Redis

1. 开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java. 首先你需要下载驱动包,下载 jedis.jar,确保下载最新驱动包.(还有common-pool2...jar,见jedis.jar 的依赖jar包) 在你的classpath中包含该驱动包. 2. 连接到 redis 服务 import redis.clients.jedis.Jedis; public class RedisJava {

rabbitmq的java简单实现

1,安装rabbitmq.我的是ubuntu14.04,在官网上面下载最新的安装文件http://www.rabbitmq.com/install-debian.html 2.安装完之后  启动rabbitmq, sudo rabbitmq-server 3.下载jar包 4.最简单的hello world的实现 Sender类 package com.lubby.test; import java.io.IOException; import com.rabbitmq.client.Chann