0
0

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 5 years have passed since last update.

Node.js の gRPC で Redis のデータを削除 (Delete)

Posted at

設定ファイル、サーバープログラム、クライアントプログラムの3つが必要です。

設定ファイル

redis_delete.proto
こちらと同じ
Python の gRPC で Redis のデータを削除 (Delete)

サーバープログラム

redis_delete_server.js
#! /usr/bin/node
// ---------------------------------------------------------------
//	redis_delete_server.js
//
//					Feb/08/2020
// ---------------------------------------------------------------
var PROTO_PATH = 'redis_delete.proto'

var grpc = require('grpc')

var protoLoader = require('@grpc/proto-loader')
var packageDefinition = protoLoader.loadSync(
    PROTO_PATH,
    {keepCase: true,
     longs: String,
     enums: String,
     defaults: true,
     oneofs: true
    });
var redis_delete_proto = grpc.loadPackageDefinition(packageDefinition).redis_delete

// ---------------------------------------------------------------
function redis_delete_proc(key_in)
{
	const redis = require ("redis")
	const client = redis.createClient (6379,'localhost')

	client.on("error", function (err)
		{
		console.log("Redis connection error to "
			+ client.host + ":" + client.port + " - " + err)
		})

	client.del(key_in)

	client.quit()
}

// ---------------------------------------------------------------
function RedisDelete(call, callback) {
	console.error("*** RedisDelete ***")
	const key_in = call.request.key
	const str_out = 'RedisDelete ' + call.request.key
	console.error(str_out)
	redis_delete_proc(key_in)
	callback(null, {key: call.request.key});
}

// ---------------------------------------------------------------
function main() {
	var server = new grpc.Server()
	server.addService(redis_delete_proto.Greeter.service, {RedisDelete: RedisDelete })
	server.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure())
	server.start()
}

// ---------------------------------------------------------------
main()
// ---------------------------------------------------------------

クライアントプログラム

redis_delete_client.js
#! /usr/bin/node
// ---------------------------------------------------------------
//	redis_delete_client.js
//
//						Feb/08/2020
// ---------------------------------------------------------------
var PROTO_PATH = 'redis_delete.proto'

var grpc = require('grpc');
var protoLoader = require('@grpc/proto-loader');
var packageDefinition = protoLoader.loadSync(
    PROTO_PATH,
    {keepCase: true,
     longs: String,
     enums: String,
     defaults: true,
     oneofs: true
    });
var redis_delete_proto = grpc.loadPackageDefinition(packageDefinition).redis_delete

// ---------------------------------------------------------------
function main() {
  var client = new redis_delete_proto.Greeter('localhost:50051',
                                       grpc.credentials.createInsecure())

  var key_in = process.argv[2]
  client.RedisDelete({key: key_in}, function(err, response) {
    console.log('key:', response.key)
  })

}

// ---------------------------------------------------------------
main()
// ---------------------------------------------------------------

サーバープログラムの起動

export NODE_PATH=/usr/lib/node_modules
./redis_delete_server.js

クライアントプログラムの実行

$ export NODE_PATH=/usr/lib/node_modules
$ ./redis_delete_client.js t1855
key: t1855
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?