4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OCI Cache with Redisを試してみる

Last updated at Posted at 2023-10-18

はじめに

Oracle Cloud Infrastructure(OCI)でマネージドのRedisサービス(Cache with Redis)がGAになりましたので、試してみます。

redis-cliのインストール

Oracle Linuxのサーバにこちらを参考にredis-cliをインストールします。

  • openssl, gccのインストール
$ sudo yum install openssl-devel gcc
This system is receiving updates from OSMS server.
Last metadata expiration check: 0:30:07 ago on Wed 18 Oct 2023 06:28:30 AM GMT.
Package openssl-devel-1:1.1.1k-9.el8_7.x86_64 is already installed.
Package gcc-8.5.0-18.0.5.el8.x86_64 is already installed.
Dependencies resolved.
====================================================================================================================================================
 Package                      Architecture                Version                               Repository                                     Size
====================================================================================================================================================
Upgrading:
 cpp                          x86_64                      8.5.0-18.0.6.el8                      ol8_appstream-x86_64                           10 M
 gcc                          x86_64                      8.5.0-18.0.6.el8                      ol8_appstream-x86_64                           23 M
 libgcc                       x86_64                      8.5.0-18.0.6.el8                      ol8_baseos_latest-x86_64                       91 k
 libgomp                      x86_64                      8.5.0-18.0.6.el8                      ol8_baseos_latest-x86_64                      217 k

Transaction Summary
====================================================================================================================================================
Upgrade  4 Packages

・・・

Upgraded:
  cpp-8.5.0-18.0.6.el8.x86_64        gcc-8.5.0-18.0.6.el8.x86_64        libgcc-8.5.0-18.0.6.el8.x86_64        libgomp-8.5.0-18.0.6.el8.x86_64       

Complete!
  • redisソースコードのダウンロード
$ wget https://download.redis.io/redis-stable.tar.gz
$ tar -xzvf redis-stable.tar.gz
$ cd redis-stable/
$ ls -l
total 248
-rw-rw-r--.  1 opc opc  18320 Sep  6 17:56 00-RELEASENOTES
-rw-rw-r--.  1 opc opc     51 Sep  6 17:56 BUGS
-rw-rw-r--.  1 opc opc   5027 Sep  6 17:56 CODE_OF_CONDUCT.md
-rw-rw-r--.  1 opc opc   2634 Sep  6 17:56 CONTRIBUTING.md
-rw-rw-r--.  1 opc opc   1487 Sep  6 17:56 COPYING
drwxrwxr-x.  8 opc opc    133 Sep  6 17:56 deps
-rw-rw-r--.  1 opc opc     11 Sep  6 17:56 INSTALL
-rw-rw-r--.  1 opc opc    151 Sep  6 17:56 Makefile
-rw-rw-r--.  1 opc opc   6888 Sep  6 17:56 MANIFESTO
-rw-rw-r--.  1 opc opc  22607 Sep  6 17:56 README.md
-rw-rw-r--.  1 opc opc 107512 Sep  6 17:56 redis.conf
-rwxrwxr-x.  1 opc opc    279 Sep  6 17:56 runtest
-rwxrwxr-x.  1 opc opc    283 Sep  6 17:56 runtest-cluster
-rwxrwxr-x.  1 opc opc   1772 Sep  6 17:56 runtest-moduleapi
-rwxrwxr-x.  1 opc opc    285 Sep  6 17:56 runtest-sentinel
-rw-rw-r--.  1 opc opc   1695 Sep  6 17:56 SECURITY.md
-rw-rw-r--.  1 opc opc  14700 Sep  6 17:56 sentinel.conf
drwxrwxr-x.  4 opc opc   8192 Sep  6 17:56 src
drwxrwxr-x. 11 opc opc   4096 Sep  6 17:56 tests
-rw-rw-r--.  1 opc opc   3628 Sep  6 17:56 TLS.md
drwxrwxr-x.  9 opc opc   4096 Sep  6 17:56 utils
  • コンパイル
$ make distclean
cd src && make distclean
make[1]: Entering directory '/home/opc/redis/redis-stable/src'
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep *.so
rm -f adlist.d quicklist.d ae.d anet.d dict.d server.d sds.d zmalloc.d lzf_c.d lzf_d.d pqsort.d zipmap.d sha1.d ziplist.d release.d networking.d util.d object.d db.d replication.d rdb.d t_string.d t_list.d t_set.d t_zset.d t_hash.d config.d aof.d pubsub.d multi.d debug.d sort.d intset.d syncio.d cluster.d crc16.d endianconv.d slowlog.d eval.d bio.d rio.d rand.d memtest.d syscheck.d crcspeed.d crc64.d bitops.d sentinel.d notify.d setproctitle.d blocked.d hyperloglog.d latency.d sparkline.d redis-check-rdb.d redis-check-aof.d geo.d lazyfree.d module.d evict.d expire.d geohash.d geohash_helper.d childinfo.d defrag.d siphash.d rax.d t_stream.d listpack.d localtime.d lolwut.d lolwut5.d lolwut6.d acl.d tracking.d socket.d tls.d sha256.d timeout.d setcpuaffinity.d monotonic.d mt19937-64.d resp_parser.d call_reply.d script_lua.d script.d functions.d function_lua.d commands.d strl.d connection.d unix.d logreqres.d anet.d adlist.d dict.d redis-cli.d zmalloc.d release.d ae.d redisassert.d crcspeed.d crc64.d siphash.d crc16.d monotonic.d cli_common.d mt19937-64.d strl.d cli_commands.d ae.d anet.d redis-benchmark.d adlist.d dict.d zmalloc.d redisassert.d release.d crcspeed.d crc64.d siphash.d crc16.d monotonic.d cli_common.d mt19937-64.d strl.d
(cd ../deps && make distclean)
make[2]: Entering directory '/home/opc/redis/redis-stable/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(cd hdr_histogram && make clean) > /dev/null || true
(cd fpconv && make clean) > /dev/null || true
(rm -f .make-*)
make[2]: Leaving directory '/home/opc/redis/redis-stable/deps'
(cd modules && make clean)
make[2]: Entering directory '/home/opc/redis/redis-stable/src/modules'
rm -rf *.xo *.so
make[2]: Leaving directory '/home/opc/redis/redis-stable/src/modules'
(cd ../tests/modules && make clean)
make[2]: Entering directory '/home/opc/redis/redis-stable/tests/modules'
rm -f commandfilter.so basics.so testrdb.so fork.so infotest.so propagate.so misc.so hooks.so blockonkeys.so blockonbackground.so scan.so datatype.so datatype2.so auth.so keyspace_events.so blockedclient.so getkeys.so getchannels.so test_lazyfree.so timer.so defragtest.so keyspecs.so hash.so zset.so stream.so mallocsize.so aclcheck.so list.so subcommands.so reply.so cmdintrospection.so eventloop.so moduleconfigs.so moduleconfigstwo.so publish.so usercall.so postnotifications.so moduleauthtwo.so rdbloadsave.so commandfilter.xo basics.xo testrdb.xo fork.xo infotest.xo propagate.xo misc.xo hooks.xo blockonkeys.xo blockonbackground.xo scan.xo datatype.xo datatype2.xo auth.xo keyspace_events.xo blockedclient.xo getkeys.xo getchannels.xo test_lazyfree.xo timer.xo defragtest.xo keyspecs.xo hash.xo zset.xo stream.xo mallocsize.xo aclcheck.xo list.xo subcommands.xo reply.xo cmdintrospection.xo eventloop.xo moduleconfigs.xo moduleconfigstwo.xo publish.xo usercall.xo postnotifications.xo moduleauthtwo.xo rdbloadsave.xo
make[2]: Leaving directory '/home/opc/redis/redis-stable/tests/modules'
(rm -f .make-*)
make[1]: Leaving directory '/home/opc/redis/redis-stable/src'
$ make redis-cli BUILD_TLS=yes
・・・
make[2]: Leaving directory '/home/opc/redis/redis-stable/deps'
    CC anet.o
    CC adlist.o
    CC dict.o
    CC redis-cli.o
    CC zmalloc.o
    CC release.o
    CC ae.o
    CC redisassert.o
    CC crcspeed.o
    CC crc64.o
    CC siphash.o
    CC crc16.o
    CC monotonic.o
    CC cli_common.o
    CC mt19937-64.o
    CC strl.o
    CC cli_commands.o
    LINK redis-cli
make[1]: Leaving directory '/home/opc/redis/redis-stable/src'
  • インストールと確認
$ sudo install -m 755 src/redis-cli /usr/local/bin/
$ redis-cli -v
redis-cli 7.2.1

ポリシーの設定

必要に応じてポリシーを設定します。

Redisクラスタの作成

OCIコンソールのデータベース Redis クラスタの作成をクリックします。

任意の名称と作成するコンパートメントを選択します。
現時点ではバージョンは7.0.5のみ選択可能です。

スクリーンショット 2023-10-18 16.28.43.png

ノードの構成を設定します。
メモリはデフォルトの8GBにしました。
ノード数は、プライマリが1ノードで残りはレプリカになります。(5ノードだったら、1プライマリ+4レプリカ)
今回は1ノードにしました。

スクリーンショット 2023-10-18 16.28.58.png

プロビジョニングするVCNとサブネットを設定します。
今回はredis-cliをインストールしたインスタンスと同じサブネットにプロビジョニングします。

スクリーンショット 2023-10-18 16.29.15.png

しばらく待つとこのようにstatusがアクティブになります。
後ほどクラスタに接続する際に必要になるプライマリ・エンドポイントをコピーしておきます。

スクリーンショット 2023-10-18 16.36.59.png

また、Redisクラスタを作成したサブネットのセキュリティリストにredis-security-listが追加されています。

スクリーンショット 2023-10-18 16.40.29.png

確認すると、Redisへのアクセスに必要な6379ポートへのイングレスルールが設定されています。

スクリーンショット 2023-10-18 16.41.51.png

Redisへの接続と動作確認

プライマリ・エンドポイントを指定して、Redisに接続します。

$ redis-cli --tls -h axxxxxxxxxxxxxxxxxxxxxxx-p.redis.ap-osaka-1.oci.oraclecloud.com

接続すると、プロンプトがプライマリエンドポイント:6379> になります。

Redisへの書き込みと応答を確認します。

プライマリエンドポイント:6379> ping
PONG
プライマリエンドポイント:6379> set mykey somevalue
OK
プライマリエンドポイント:6379> get mykey
"somevalue"
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?