Redis似乎没有任何与关系数据库中的“表”相对应的实体。
例如,我必须存储:
(token, user_id)
(cart_id, token, [{product_id, count}])
Run Code Online (Sandbox Code Playgroud)
如果不将这两者分开存储,则该get方法会从两者中搜索,这会造成混乱。
顺便说一句,(cart_id, token, [{product_id, count}])是购物车,redis中如何设计这样的数据结构?
我参考了链接:http://panuoksala.blogspot.com/2015/09/redis-many-to-many.html来开发下面的代码。我已经实现了一些代码,看起来到目前为止什么都无法实现
获取用户1组:
hget User:1 Groups
Run Code Online (Sandbox Code Playgroud)
不产生结果。
我想从数据建模的角度获得更多答案。我已经对如下代码进行了建模,但它没有按照我的要求工作 -
组.java
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@RedisHash("groups")
public class Group {
@Id
private Long groupId;
private String name;
private List<User> users;
}
Run Code Online (Sandbox Code Playgroud)
和用户.java
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@RedisHash("users")
public class User {
@Id
private Long userId;
private String name;
List<Group> groups;
}
Run Code Online (Sandbox Code Playgroud)
用户组测试.java
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class UserGroupTest extends RepositoryTestSupport{
@Autowired UserRepository userRepository;
@Autowired GroupRepository groupRepository;
@Before
public void setUp() {
// User -> Group relations
Group group1 = Group.builder().groupId(1L).name("Nature-Group").build();
Group …Run Code Online (Sandbox Code Playgroud)