Perfect-Redis 简体中文
Redis client support for Perfect
Get a redis client with defaults (localhost, default port):
letclient=RedisClient.getClient(withIdentifier:RedisClientIdentifier())Ping the server:
letresponse= client.ping()guard case .simpleString(let s)= response else{return}XCTAssert(s =="PONG","Unexpected response \(response)")Set/get a value:
let(key, value)=("mykey","myvalue")varresponse= client.set(key: key, value:.string(value))guard case .simpleString(let s)= response else{...return}
response = client.get(key: key)guard case .bulkString = response else{...return}lets= response.toString()XCTAssert(s == value,"Unexpected response \(response)")Pub/sub with two clients using async API:
RedisClient.getClient(withIdentifier:RedisClientIdentifier()){
c indo{letclient1=tryc()RedisClient.getClient(withIdentifier:RedisClientIdentifier()){
c indo{letclient2=tryc()
client1.subscribe(channels:["foo"]){
response in
client2.publish(channel:"foo", message:.string("Hello!")){
response in
client1.readPublished(timeoutSeconds:5.0){
response inguard case .array(let array)= response else{...return}XCTAssert(array.count ==3,"Invalid array elements")XCTAssert(array[0].toString()=="message")XCTAssert(array[1].toString()=="foo")XCTAssert(array[2].toString()=="Hello!")}}}}catch{...}}}catch{...}}Add this project as a dependency in your Package.swift file.
.package(url: "https://github.com/PerfectlySoft/Perfect-Redis.git", from: "3.2.3")
For more information on the Perfect project, please visit perfect.org.




