SomeObject.java
package org.example.testset;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
public class SomeObject implements Serializable {
private static final long serialVersionUID = -1L;
private Map<String, Integer> map = new HashMap<>();
public Map<String, Integer> getMap() {
return map;
}
public void setMap(Map<String, Integer> map) {
this.map = map;
}
@Override
public String toString() {
return "SomeObject{" +
"map=" + map +
'}';
}
}
Server.java // 当然了,因为修改RXxx里面的方法修改了,就是会修改到这个对象
package org.example.testset;
import org.redisson.Redisson;
import org.redisson.api.*;
import org.redisson.config.Config;
/*
存入值,然后修改值,刷新值
*/
public class TestSETServer {
public static void main(String[] args) {
RedissonClient client = null;
try {
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
client = Redisson.create(config);
//取得缓存
RMap<String, SomeObject> map = client.getMap("GUILD");
// 存入值(可以认为创建了一个工会,工会id是100)
SomeObject someObject = new SomeObject();
map.put("100", someObject);
// 值修改后重新存到RMap中(可以认为修改了工会id为100的数据)
someObject.getMap().put("aaa", 111);
map.put("100", someObject);
} catch (Exception ex) {
System.out.println(ex.getMessage());
} finally {
client.shutdown();
}
}
}
Client.java
package org.example.testset;
import org.redisson.Redisson;
import org.redisson.api.*;
import org.redisson.config.Config;
public class TestSETClient {
public static void main(String[] args) {
RedissonClient client = null;
try{
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
client = Redisson.create(config);
//取得所有工会数据
RMap<String, SomeObject> map = client.getMap("GUILD");
//根据工会id获取这个工会的数据
SomeObject someObject = map.get("100");
System.out.println(someObject);
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
finally {
client.shutdown();
}
}
}
/*
SomeObject{map={aaa=111}}
*/
总结:可以看出来,用Map这种,操作工会数据还是不太好,我只想获取单个的,还是用RBucket存和取比较好