【问题标题】:What is the CLI command to view inside of a set data type in redis在 redis 中查看集合数据类型内部的 CLI 命令是什么
【发布时间】:2019-05-05 05:56:20
【问题描述】:

我在我的 spring data redis 项目中使用了一个 CRUDRepository 来在我的 redis 集群中保留一个 redis 哈希。我已经编写了rest api来持久化并获取数据的值。这工作正常。

但是,我用 RedisHash 注释的实体被保存为一个集合 / 并且我无法使用 redis cli 查看值的内部。

如何在 redis cli 中查看集合数据类型(不弹出)

我查看了 redis 命令页面 https://redis.io/commands#set 我只得到可以弹出值的操作。我只需要偷看

编辑: 为了让事情更清楚,我正在使用 spring crudrepo 将用户实体保存到 redis 数据存储中。用户实体被保存为一组数据类型。

当我查询回用户详细信息时,我可以看到用户的全部详细信息

{ 用户名:“索马克”, userSurName: "达塔", 年龄:23​​, 邮编:“ah56h” }

我本质上想使用 redis cli 做同样的事情......但我得到的只是 127.0.0.1:6379> 会员用户 1)“索马克” 我如何查看 somak 对象的内部。

@RestController
@RequestMapping("/immem/core/user")
public class UserController {

    @Autowired
    private UserRepository userRepository;


    @RequestMapping(path = "/save", method = RequestMethod.GET, produces = "application/json")
    @ResponseStatus(HttpStatus.OK)
    public void saveUserDetails() {

        User user = new User();
        user.setAge(23);
        user.setUserName("somak");
        user.setUserSurName("dattta");
        user.setZipCode("ah56h");
        userRepository.save(user);
    }

    @RequestMapping(path="/get/{username}", method = RequestMethod.GET, produces = "application/json")
    public User getUserDetails(@PathVariable("username") String userName) {

        return userRepository.findById(userName).get();
    }
}




@Repository
public interface UserRepository extends CrudRepository<User, String>{

}



@RedisHash("user")
public class User {

    private @Id String userName;

    private @Indexed String userSurName;

    private @Indexed int age;

    private String zipCode;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserSurName() {
        return userSurName;
    }

    public void setUserSurName(String userSurName) {
        this.userSurName = userSurName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }


}

【问题讨论】:

    标签: spring spring-boot redis spring-data-redis


    【解决方案1】:

    我不明白你对你的问题的描述,但我明白你的标题。

    在redis set中,成员总是字符串类型。

    我希望你能提供更多关于 UserRepository.save 的信息:

        User user = new User();
        user.setAge(23);
        user.setUserName("somak");
        user.setUserSurName("dattta");
        user.setZipCode("ah56h");
        userRepository.save(user);
    

    你可以在调用rest api时检查你的redis数据并检查数据类型。

    【讨论】:

    • 编辑了我的问题以获取更多详细信息并明确说明
    • 我认为您的数据可能并非全部在集合结构中。我希望你可以在你的测试环境中做: - 1:exec flushdb 命令(flush redis) - 2:调用你的 api - 3:exec keys * - 4:exec type key_name(3 exec keys * get all key name)跨度>
    • 127.0.0.1:6379> 类型用户集
    • 127.0.0.1:6379> 键 u* 1) "user:somak" 2) "user:userSurName:dattta" 3) "user:age:23" 4) "user" 5) "用户:somak:idx"
    • 我无法理解我到底做错了什么??用户类型已设置 bt 键为 user:somak, user:userSurName
    猜你喜欢
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多