这是我之前写的代代码,可以参考一下:
import java.util.Setimport com.google.gson.Gson
import redis.clients.jedis.Jedis
import redis.clients.jedis.JedisPool
import redis.clients.jedis.JedisPoolConfig
public class App {
public static void main(String[] args) {
JedisPoolConfig config = new JedisPoolConfig()
config.setMaxIdle(5)
config.setMaxWaitMillis(10000)
config.setTestOnBorrow(false)
JedisPool jedisPool = new JedisPool(config, "127.0.0.1", 6379)
Jedis jedis = jedisPool.getResource()
jedis.flushDB()
jedis.set("name", "Tom")
User user = new User(1, "Tom", "User")
Gson gson = new Gson()
String json = gson.toJson(user)
jedis.set("user1", json)
Set<String> keys = jedis.keys("*")
for (String key : keys) {
System.out.println(key)
}
}
}
如果有疑问,可以随时追问。
Java连接redis的使用示例Redis是开源的key-value存储工具,redis通常用来存储结构化的数据,因为redis的key可以包含String、hash、listset和sorted list。
Redisclient支持多种语言,包括:c、C++、C#、php、java、python、go等语言,根据自己的开发语言,选择合适的redis client版本类型即可。我是使用java语言开发的,针对java语言,redis client也提供了多种客户端支持,按照推荐类型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前两种类型是比较推荐的,我们采用了Redisson类型版本作为redisclient的使用。
Redisson版的redis可发工程搭建
1.新建maven工程
2.在pom.xml文件的dependencies节点下增加如下内容:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
3.保存pom.xml后,等eclispe工程构建完成后即可进行开发了
开发示例
下面是演示连接redis服务器、保存读取concurrentMap对象、保存读取set对象和保存读取Queue对象的示例代码,代码比较简单,这里就不再详细讲解了,代码如下:
[java] view plaincopy
package com.my.test.redis
import java.util.Queue
import java.util.Set
import java.util.concurrent.ConcurrentMap
import org.redisson.Config
import org.redisson.Redisson
public class RedisExample {
/**
* @param args
*/
public static void main(String[] args) {
// 1.初始化
Config config = new Config()
config.setConnectionPoolSize(10)
config.addAddress("127.0.0.1:6379")
Redisson redisson = Redisson.create(config)
System.out.println("reids连接成功...")
// 2.测试concurrentMap,put方法的时候就会同步到redis中
ConcurrentMap<String, Object>map = redisson.getMap("FirstMap")
map.put("wuguowei", "男")
map.put("zhangsan", "nan")
map.put("lisi", "女")
ConcurrentMap resultMap = redisson.getMap("FirstMap")
System.out.println("resultMap==" + resultMap.keySet())
// 2.测试Set集合
Set mySet = redisson.getSet("MySet")
mySet.add("wuguowei")
mySet.add("lisi")
Set resultSet = redisson.getSet("MySet")
System.out.println("resultSet===" + resultSet.size())
//3.测试Queue队列
Queue myQueue = redisson.getQueue("FirstQueue")
myQueue.add("wuguowei")
myQueue.add("lili")
myQueue.add("zhangsan")
myQueue.peek()
myQueue.poll()
Queue resultQueue=redisson.getQueue("FirstQueue")
System.out.println("resultQueue==="+resultQueue)
// 关闭连接
redisson.shutdown()
}
}
错误很明显是空指针异常,点个debug运行,跟踪一下,一遍就能找出是哪个为空。redisDao.getInfo("totalPage")这句为空的话,很大可能是redisDao 是null,可以跟踪代码看一下,是不是没有实例化这个对象。