欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis数据库设计

程序员文章站 2022-03-09 08:41:54
...

       在互联网项目中我们需要提高数据的访问速度,关系型数据库就满足不了我们的要求,所以我们需要使用非关系型数据库来提高查询速度。

redis数据库设计

我们需要把关系型数据库变成键值对存储

1.用户的存储

Key的设计:在key中我们可以使用list来存储所有的球队的id

List中的key

结构类型                         key                         value

list                                 team:team_id         1234....

tetam:team_id: [ 1,2,3,4.....]

每一支球队的存储使用hash

结构类型                        key                     key_attr                value

   hash                  表名:[ team_id值]         name                         公牛

   hash                  表名:[ team_id值]         addr                         芝加哥

   hash                  表名:[ team_id值]         team_id                         101

team:101 : [{team_id: 101}, {name: 骑士}, {addr: 克利夫兰}]

命令行实现: 

192.168.153.128:6379> lpush team:team_id 1 2
(integer) 2
192.168.153.128:6379> hmset team:1 team_id 1 t_name gongniu loc zhijiage
OK
192.168.153.128:6379> hmset team:2 team_id 2 t_name qishi  loc kelifulan
OK
192.168.153.128:6379> 

test类:

/*
 * 根据teamID来查询部门下的人
 * */
@Test
public void testsqueryRedis3() {
    Jedis jedis = new Jedis("192.168.153.128", 6379);

    // 获得部门信息
    String t_name = jedis.hget("team:1", "t_name");
    String loc = jedis.hget("team:1", "loc");
    Dept dept = new Dept();
    dept.setTeam_id(new Integer(1));
    dept.setName(t_name);
    dept.setLoc(loc);
    List<String> list = jedis.lrange("team:1:emp", 0, -1);
    Set<Emp> set = new HashSet<>();

    for (String empId : list) {

        String emp_id = jedis.hget("emp:" + empId, "emp_id");
        String e_name = jedis.hget("emp:" + empId, "e_name");
        String gender = jedis.hget("emp:" + empId, "gender");
        String tid = jedis.hget("emp:1", "tid");

        Emp emp = new Emp();
        emp.setEx_id(new Integer(emp_id));
        emp.setName(e_name);
        emp.setGender(new Integer(gender));
        set.add(emp);
    }
    dept.setEmp(set);
    jedis.close();
}

        这块说白了就是把关系型数据库变成键值对存储到redis当中,在实际项目中,映射好model,查出数据设计好要存储在redis当中的关系,然后add到redis里面即可。

 

 

 

 

 

 

 

相关标签: redis数据库设计