黑马程序员技术交流社区
标题:
【西安校区】使用Java读取 “Python写入redis” 的数据踩坑记录
[打印本页]
作者:
就业高冷派
时间:
2019-9-18 15:22
标题:
【西安校区】使用Java读取 “Python写入redis” 的数据踩坑记录
https://my.oschina.net/u/2338224/blog/3061507
使用Java读取 “Python写入redis” 的数据踩坑记录
https://segmentfault.com/q/10100 ... 0007054559/revision
可以使用Python读取java写入redis 的object数据,并解析吗?
https://github.com/andymccurdy/redis-py/issues/777
how can i set 'class' object and get it from redis ? #777
https://segmentfault.com/q/1010000007043502?_ea=1222915
可以使用Python读取java写入redis 的object数据,并解析吗?
https://www.liangzl.com/get-article-detail-132528.html
使用Java读取 “Python写入redis” 的数据踩坑记录
-Java 存储与python共享数据时,应避免将String字符串当做对象进行序列化存储,应直接以字符串的形式存
储,如果需要共享对象,对象转化为json串存储。
@SuppressWarnings("resource")
public static Map<String,String> getAllHashByKey(String key) {
try {
JedisPool pool = null;
pool = new JedisPool(RedisUtil.REDIS_HOST,RedisUtil.REDIS_PORT);
Jedis jedisClient = pool.getResource();
jedisClient.auth(RedisUtil.REDIS_PASSWORD);
Map<String, String> map = jedisClient.hgetAll(key);
return map;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring-mybatis.xml","classpath:spring-redis.xml"})
public class RedisTest {
@Autowired
private RedisUtil redisUtil;
@SuppressWarnings("resource")
@Test
public void getHashKeyValue() {
JedisPool pool = null;
pool = new JedisPool("localhost",6379);
Jedis jedisClient = pool.getResource();
jedisClient.auth("1234");
String key = "device:49bd573355464bfbad3dce4f68345008";
// List<String> list = jedisClient.hmget("device:49bd573355464bfbad3dce4f68345008");
// System.out.println(list);
String temperature = jedisClient.hget("device:49bd573355464bfbad3dce4f68345008","temperature");
System.out.println(temperature);
// List<String> list = jedisClient.hmget("device:49bd573355464bfbad3dce4f68345008");
// System.out.println(list);
// jedisClient.hmget(key, fields)
Map<String, String> map = jedisClient.hgetAll(key);
System.out.println(map);
}
@Test
public void getAllHashByKey() {
// Map<Object, Object> map = redisUtil.hmget("device:49bd573355464bfbad3dce4f68345008");
// Map<Object, Object> map = redisUtil.hmget("device:DMB28E3ACBD4B22A8633E13E58717038DE");
// Map<Object, Object> map = redisUtil.hmget("device:WPD741705FE5210AE2096D2C05BD3466CA");
Map<String, String> map = RedisUtil.getAllHashByKey("device:DMB28E3ACBD4B22A8633E13E58717038DE");
int size = map.size();
System.out.println(size);
System.out.println(map);
// Integer reportStatus = (Integer) map.get("reportStatus");
// Integer powerConsumption = (Integer) map.get("powerConsumption");
// System.out.println(reportStatus);
// System.out.println(powerConsumption);
}
}
@Component
public class RedisUtil {
// (自动注入redisTemplet)
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
this.redisTemplate = redisTemplate;
}
public final static String REDIS_HOST = "localhost";
public final static Integer REDIS_PORT = 6379;
public final static String REDIS_PASSWORD = "1234";
public final static Integer MAX_TOTAL = 500;
public final static Integer MAX_WAIT_MILLIS = 2000;
public static JedisPool jedisPool = null;
public static JedisPoolConfig config = null;
/*关闭Jedis*/
public static void close(Jedis jedis){
if(jedis!=null){
jedis.close();
}
}
public static Map<String,String> getAllHashByKey(String key) {
Jedis jedis = null;
try {
// 1 获得连接池配置对象,设置配置项
config = new JedisPoolConfig();
// 1.1 最大连接数
config.setMaxTotal(200);
config.setMaxWaitMillis(2000);
jedisPool = new JedisPool(config,RedisUtil.REDIS_HOST,RedisUtil.REDIS_PORT);
jedis = jedisPool.getResource();
jedis.auth(RedisUtil.REDIS_PASSWORD);
Map<String, String> map = jedis.hgetAll(key);
return map;
} catch (Exception e) {
e.printStackTrace();
return null;
}finally {
close(jedis);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2