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)
}
Momento Cacheに新しいキャッシュを作成する
この機能を使用して、アカウントに新しいキャッシュを作成します。
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)
}