# store_appoint_keys_to_redis **Repository Path**: huoyingwhw/store_appoint_keys_to_redis ## Basic Information - **Project Name**: store_appoint_keys_to_redis - **Description**: 往redis中存入指定字段的demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-13 - **Last Updated**: 2023-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 实现功能 实际中我们会将数据库的数据查出来后写入到redis中,而数据库可能有非常多的字段,又不用把数据库所有的字段都存到redis中,本项目提供了将数据库中部分字段存入redis中的思路与代码实现 - 方案1: 重新定义一个结构体比如叫UserRedis,结构体的字段只有存入redis中的字段,从数据库中查出来User结构体对象后再新建UserRedis结构体对象,最后将数据存到Redis中,这样简单粗暴,代码就忽略了 - 方案2: 使用GORM+structs包实现,GORM查询的结果放在User结构体中还会有不想要的字段,此时用structs包转成map,将不想写入到redis的字段在structs标签中忽略即可,❗但是需要注意,structs标签忽略了某些字段,如果有其他地方使用同一个User结构体也要用structs包将结构体转为map的话不会将忽略的字段转到map中,代码在[2gorm_select1_structs](2gorm_select1_structs) - 方案3: GORM查询的结果放到map中,这样Select方法只需要查询指定字段即可,返回的map不会有不想要的字段,❗️但是使用map接收GORM的结果时,map的key是gorm标签定义的字段,比如gorm标签中的phone_number存到redis中也是phone_number,需要json标签跟gorm标签对应!否则从redis反序列化出来会找不到手机号,代码在[2gorm_select2_map_ret](2gorm_select2_map_ret) - 方案4: 加一个redis标签,自己用反射去实现,代码在[3reflect_redis_tag](3reflect_redis_tag) 将结果使用redis的pipeline存到redis中,代码在[store_data_to_redis](store_data_to_redis)