在项目里面,我们使用了比较多的redis数据,这些缓存数据承担了数据库的一部分的“读”操作。另一方面也导致了数据并不是实时的。
题外话,我们在写缓存类的时候,最好写上“如果缓存查不到, 就去数据库查一次”的逻辑。
@Override
public JSONObject getValue(String key) {
JSONObject jSONObject = super.getValue(key);
if(jSONObject==null){
reload(key);
jSONObject = super.getValue(key);
}
return jSONObject;
}这一块可以直接在getValue( )方法里写。
回到标题,当我们需要去直接操作redis的时候,最好的选择是用可视化工具,例如Redis Desktop Manager。如果需要在linux服务器上连接远程redis服务器,那就只能用命令来操作。
首先是连接:
[root@ src]# ./redis-cli -h HOST -p 6379 -a "PASSWORD"选择db:
192.168.0.1:6379> select 10
OK192.168.0.1:6379[10]> hget cache:meeting_table 01b37762-7d9b-4611-90b8-ea29cefc673e
//下面为返回值
"{\"objectVersionNumber\":1,\"id\":\"01b37762-7d9b-4611-90b8-ea29cefc673e\",\"meetingId\":\"b938b36f-cac8-46d4-a7c0-57fddc89ebdd\",\"tableNumber\":57,\"availableSeat\":0,\"totalSeat\":10,\"status\":\"Y\",\"areaName\":\"C\"}"上面的01b37762-7d9b-4611-90b8-ea29cefc673e是缓存时的id,也就是key,在redis里,相当于cache:meeting_split 这个实体的一个属性名称。
如果想查看cache:meeting_split下的所有数据,可以用命令:hgetall cache:meeting_table
修改:
192.168.0.1:6379[10]> hset cache:meeting_table 01b37762-7d9b-4611-90b8-ea29cefc673e "{\"objectVersionNumber\":1,\"id\":\"01b37762-7d9b-4611-90b8-ea29cefc673e\",\"meetingId\":\"e6d9cf9e-5883-40db-bfa9-d81a849848e4\",\"tableNumber\":78,\"availableSeat\":1,\"totalSeat\":10,\"status\":\"Y\",\"areaName\":\"E\"}"
//下面为返回值
(integer) 0再查询一下:
192.168.0.1:6379[10]> hget cache:meeting_table 01b37762-7d9b-4611-90b8-ea29cefc673e
//下面为返回值
192.168.0.1:6379[10]> hset cache:meeting_table 01b37762-7d9b-4611-90b8-ea29cefc673e "{\"objectVersionNumber\":1,\"id\":\"01b37762-7d9b-4611-90b8-ea29cefc673e\"