Redis的入门案例!
我们先看一下入门案例的小小要求!
假如你是一个java用户,请定义一个用户信息结构体,然后使用fastjson对用户信息对象进行序列化,然后将序列化的对象用jedis存入redis中。接着用jedis将刚刚存入的用户信息从redis中取出,再经过fastjson反序列化后输出到控制台上!
在我简单地学习了redis基础知识之后,《Redis深度历险》这本书给我出了这样一道思考题,我就把它当作我入门redis的最基本案例了。在题中已经很清楚的给出了提示和要求,主要有几点:用fastjson序列化,用jedis存,用jedis取,用fastjson反序列化,输出。
第一个问题: 所以首先我们得明了,怎么用fastjson进行序列化和反序列化,当然最简单的就是用到JSON.toJSONString()和JSON.parseObject()了。
举例:
String JsonUser = JSON.toJSONString(user); //序列化对象user
JSON.parseObject(JsonUser,User.class); //反序列化user
第二个问题:怎么搭建一个最简单方便的jedis环境。这里用到了ShardedJedisPool连接池。
举例:
private static ShardedJedisPool pool;
static {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(100);
config.setMaxIdle(50);
config.setMaxWaitMillis(3000);
config.setTestOnBorrow(true);
config.setTestOnReturn(true);
JedisShardInfo jedisShardInfo = new JedisShardInfo("localhost", 6379);
jedisShardInfo.setPassword("123456");
List<JedisShardInfo> list = new LinkedList<JedisShardInfo>();
list.add(jedisShardInfo);
pool = new ShardedJedisPool(config,list);
}
有了以上的准备 ,我们就可以开始解决问题啦!
- 先导入环境依赖。
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
- 然后定义一个User类。
public class User {
private String name;
private Integer age;
private String sex;
//以下省略构造函数,getset方法,以及toString方法
}
- 在建立连接redis的jedis环境。
public class JedisConfig {
private static ShardedJedisPool pool;
static {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(100);
config.setMaxIdle(50);
config.setMaxWaitMillis(3000);
config.setTestOnBorrow(true);
config.setTestOnReturn(true);
JedisShardInfo jedisShardInfo = new JedisShardInfo("120.55.36.148", 6379);
jedisShardInfo.setPassword("123456");
List<JedisShardInfo> list = new LinkedList<JedisShardInfo>();
list.add(jedisShardInfo);
pool = new ShardedJedisPool(config,list);
}
}
- 最后在该类中创建一个main方法实现业务。
public static void main(String[] args) {
User user = new User();
user.setName("chenhang");
user.setAge(1);
user.setSex("man");
//序列化后存入redis
String s = JSON.toJSONString(user);
ShardedJedis jedis = pool.getResource();
jedis.set(user.getName(),s);
//反序列化
String user2 = jedis.get(user.getName());
User user1 = JSON.parseObject(user2, User.class);
System.out.println(user1.toString());
}
以上就是redis的入门小案例啦!