试试用SpringBoot和Redis

首先

    • 今回は最近よく耳にするNoSQLというやつを使ってみる

 

    • NoSQLのうちRedisを使用する

 

    • とりあえず動かすところまでを目標とする

 

    nosqlとRDBの違いがわからない人は他の方の記事を参考にしてください(詳しくは触れないです)

目前我們只需要一種中文本地化的句子。

对象

    • あくまでもJava(SpringBoot)ユーザー&&NoSQL初心者

 

    NoSQLに興味ある人

Redis是什么?

    • NoSQLの一種

 

    • オープンソースなやつ(他にも有名どこだと、CassandraとかMongoDBとか。使ったことはないです)

 

    KVSのデータベース(Mapみたいなイメージ?違ったらごめんなさい)

请参考这篇文章,关于NoSQL的解释非常明确。
我会学习NoSQL。

马上试着玩玩看

所准备的东西

    • Macのターミナル

 

    IntelliJ(SpringBoot+Gradle)

Redis 方面

使用终端输入”brew install”命令来安装Redis。

% brew install redis

使用redis-server进行确认。

% redis-server
image.png

执行redis-cli

image.png

执行以下命令

% ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents

% launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

重新使用redis-cli

image.png

春天之旁

    適当にアプリケーションは用意してください
compile ('org.springframework.boot:spring-boot-starter-redis:1.4.7.RELEASE')

只需添加上述设置,即可使用RedisTemplate。
通过使用它,您可以将Key和Value注册到Redis中,就像使用Map一样。

spring.redis:
  host: localhost
  port: 6379
  password: null
  database: 0

只要按照这个样子在yml文件中写入,就可以使用Redis了。这是默认设置,如果不需要写入的话请原谅。数据库默认从0开始使用。

试着动一动

在这样那样的情况下,虽然已经可以将其注册到Redis中,但还是稍微给出一些示例代码。



@Data
@Getter
@Setter
class RedisSampleData {

    private String string;

    private List<String> list;

    private Map<String, String> map;

}


@RestController
@RequestMapping(value = "/SampleRedis")
public class RedisSampleController {

    @Autowired
    private StringRedisTemplate redisTemplate;

    @PostMapping
    public void post(@RequestBody RedisSampleData redisSampleData) {
        redisTemplate.delete("redis-tutorial:string");
        redisTemplate.opsForValue()
                .set("redis-tutorial:string", redisSampleData.getString());
        redisTemplate.delete("redis-tutorial:list");
        redisTemplate.opsForList()
                .rightPushAll("redis-tutorial:list",
                        redisSampleData.getList().toArray(new String[0]));
        redisTemplate.delete("redis-tutorial:map");
        redisTemplate.opsForHash()
                .putAll("redis-tutorial:map", redisSampleData.getMap());
    }

    @GetMapping
    public RedisSampleData get() {
        RedisSampleData redisSampleData = new RedisSampleData();
        redisSampleData.setString(
                redisTemplate.opsForValue()
                        .get("redis-tutorial:string")
        );
        redisSampleData.setList(
                redisTemplate.opsForList()
                        .range("redis-tutorial:list", 0, -1)
        );
        redisSampleData.setMap(
                redisTemplate.<String, String>opsForHash()
                        .entries("redis-tutorial:map")
        );
        return redisSampleData;
    }
}
{
  "string": "太郎",
  "list": [
    "二郎",
    "三郎"
  ],
  "map": {
    "田中": "太郎",
    "山田": "二郎"
  }
}

试试看敲一下……

% curl -X POST -H "Content-Type: application/json" http://localhost:8080/SampleRedis -d @request.json

% curl "localhost:8080/SampleRedis"
image.png

乱感

    • SpringBootのおかげで結構簡単に使い始めることはできた

 

    ちゃんと使えるようになるにはもう少し時間がかかりそう

参考来源

春天的数据存储Redis