メインコンテンツまでスキップ

SwiftでMomentoキャッシュを始める

SwiftとMomento Cacheをすぐに使い始める必要がある場合、このページには必要な基本的なAPIコールが含まれています。完全で動作するコードサンプルについては、Swift SDK のサンプル を確認してください。

Momento SDKをインストールする

Momento Swift SDKの最新バージョンはGitHubで入手可能です: momentohq/client-sdk-swift

Momento APIキーを取得する

Momento APIキーが必要です。Momento Web Consoleから取得できます。 トークンを取得したら、Momentoクライアントが利用できるように環境変数に保存します:

export MOMENTO_API_KEY=<your api key here>

Note: セキュリティ強化のためには、APIキーを環境変数ではなく、AWS Secret ManagerやGCP Secret Managerのようなものに入れるのがベストプラクティスだが、ここではデモのためにAPIキーを使っています。

CacheClient のセットアップ

このコードは、他のメソッドの呼び出しに使用する CacheClient を作成します。

do {
let credentialProvider = try CredentialProvider.fromEnvironmentVariable(envVariableName: "MOMENTO_API_KEY")
let cacheClient = CacheClient(
configuration: CacheClientConfigurations.iOS.latest(),
credentialProvider: credentialProvider,
defaultTtlSeconds: 10
)
} catch {
print("Unable to create cache client: \(error)")
exit(1)
}
let result = await cacheClient.createCache(cacheName: cacheName)
switch result {
case .alreadyExists(_):
print("Cache already exists!")
case .success(_):
print("Successfully created the cache!")
case .error(let err):
print("Unable to create the cache: \(err)")
exit(1)
}

あなたのアカウントにある既存のキャッシュの名前をリストアップします

アカウントのキャッシュ名の単純なリスト

let result = await cacheClient.listCaches()
switch result {
case .success(let success):
print("Successfully fetched list of caches: \(success.caches.map { $0.name })")
case .error(let err):
print("Unable to fetch list of caches: \(err)")
exit(1)
}

キャッシュの削除

この機能を使用して、アカウントからキャッシュを削除します

let result = await cacheClient.deleteCache(cacheName: cacheName)
switch result {
case .success(let success):
print("Successfully deleted the cache")
case .error(let err):
print("Unable to delete cache: \(err)")
exit(1)
}

キャッシュに項目を書き込む

セット操作の単純な例。CacheClient.set() 呼び出しでは、TTL はオプションです。これを渡すと、クライアント接続オブジェクトで設定された既定の TTL 値がオーバーライドされます

let result = await cacheClient.set(
cacheName: cacheName,
key: "key",
value: "value"
)
switch result {
case .success(_):
print("Successfully set item in the cache")
case .error(let err):
print("Unable to set item in the cache: \(err)")
exit(1)
}

キャッシュからアイテムを読み込む

これは、キャッシュから項目を取得する単純な読み取り操作の例です。

let result = await cacheClient.get(
cacheName: cacheName,
key: "key"
)
switch result {
case .hit(let hit):
print("Cache hit: \(hit.valueString)")
case .miss(_):
print("Cache miss")
case .error(let err):
print("Unable to get item in the cache: \(err)")
exit(1)
}

キャッシュから項目を削除する

これはキャッシュから項目を削除する例である

let result = await cacheClient.delete(
cacheName: cacheName,
key: "key"
)
switch result {
case .success(_):
print("Successfully deleted item in the cache")
case .error(let err):
print("Unable to delete item in the cache: \(err)")
exit(1)
}

コードの実行

Swift SDK GitHub repo examples directoryで、完全な、動作するサンプルを見つけることができます。

備考

これらの基本的なAPIコール以外にも、MomentoのAPIコールの詳細については、APIリファレンスページをチェックしてください。