{"id":28046440,"url":"https://github.com/free-pixel/jredom","last_synced_at":"2026-04-10T05:38:18.910Z","repository":{"id":291723604,"uuid":"970002376","full_name":"free-pixel/jredom","owner":"free-pixel","description":"A lightweight and  open-sourced Redis ORM experiment.","archived":false,"fork":false,"pushed_at":"2025-05-07T22:31:02.000Z","size":91,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-11T19:33:55.679Z","etag":null,"topics":["java-client","jredom","lightweight","maven","redis-cache","redis-orm"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/free-pixel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-21T09:46:19.000Z","updated_at":"2025-05-07T22:31:06.000Z","dependencies_parsed_at":"2025-05-06T08:38:59.652Z","dependency_job_id":null,"html_url":"https://github.com/free-pixel/jredom","commit_stats":null,"previous_names":["free-pixel/jredom"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/free-pixel/jredom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free-pixel%2Fjredom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free-pixel%2Fjredom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free-pixel%2Fjredom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free-pixel%2Fjredom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/free-pixel","download_url":"https://codeload.github.com/free-pixel/jredom/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free-pixel%2Fjredom/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263572796,"owners_count":23482520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java-client","jredom","lightweight","maven","redis-cache","redis-orm"],"created_at":"2025-05-11T19:27:34.078Z","updated_at":"2026-04-10T05:38:13.875Z","avatar_url":"https://github.com/free-pixel.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## About JRedom (Experimental / Beta)\n\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n![Last Commit](https://img.shields.io/github/last-commit/free-pixel/jredom)\n![Open Issues](https://img.shields.io/github/issues/free-pixel/jredom)\n![Pull Requests](https://img.shields.io/github/issues-pr/free-pixel/jredom)\n![License](https://img.shields.io/github/license/free-pixel/jredom)\n![Swift](https://img.shields.io/badge/built_with-Java-orange?logo=java)\n![Platform](https://img.shields.io/badge/platform-Java-blue)\n![GitHub Stars](https://img.shields.io/github/stars/free-pixel/jredom?style=social)\n\n\nThis Redis ORM solution is currently a temporary one. It is more of an implementation based on \"convention.\" It is simple enough, flexible enough, and you can even directly copy the code without needing to include a jar file.\n\n\n## Maybe the solution\n\n1、basicly implementation a simple redis orm lib\n\nour goal is implement one redis orm lib, when you change your db data, the redis\ncase sync at once, at the same time keep the code simple and clean.\n\n\nthere are three plan to slove the problem\n\n1、use event driver, the event framework we use spring-event, when database changed, the change method send one event notify the redis listener to sync redis\n\n2、make redis-orm as a annotion, when db method invoked, the orm code at time work,but i don't like to use annotation, it make the code understand complex.\n\n3、use mybatis interceptor, when db update param equals EntityWithId, we can invoke the sync code\n\n4、use inner function, like the mask code :\n\n```java\n\n    @Transactional\n    public User updateUser(User user, function funcRedisOrm) {\n\n        // 1. Update MySQL\n        userMapper.update(user);\n\n        // 2. Update Redis\n        funcRedisOrm();\n\n        return use;\n    }\n\n```\n\nthis plan like use the proxy pattern to solve the problem.\n\n\nsummary: the only problem is how to control the invoke time, and the invoke mechanism.\n\n\nsynchronous call ；synchronized call 。\n\n## add protobuf serial/deserial object\n\nyou can use spring manager your serial type, default is json, you can change to protobuf.\n\n```java\n\n@Configuration\npublic class RedisConfig {\n    @Bean\n    public RedisCacheManager redisCacheManager(RedisTemplate\u003cString, String\u003e redisTemplate) {\n        RedisCacheManager manager = new RedisCacheManager();\n        manager.setSerializationType(RedisCacheManager.SerializationType.PROTOBUF); // 或JSON\n        return manager;\n    }\n}\n\n```\n\n## Quick Start\n\nYou can follow the user guide [here](./docs/jredom-quick-start.en.md).\n\n## Background and Motivation\n\n- [English](docs/background-and-motivation-for-the-project.en.md)\n- [简体中文](docs/background-and-motivation-for-the-project.zh-CN.md)\n- [繁體中文](docs/background-and-motivation-for-the-project.zh-Hant.md)\n- [日本語](docs/background-and-motivation-for-the-project.ja.md)\n\n\n## License\n\nThis project is licensed under the [MIT License](./LICENSE).  \nCopyright (c) 2025 Free Pixel Games\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffree-pixel%2Fjredom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffree-pixel%2Fjredom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffree-pixel%2Fjredom/lists"}