[Redis]redis命令行操作

370 阅读2分钟

在项目里面,我们使用了比较多的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
OK


查询一下:

192.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\"