三、连接Memcachedl实例

  • 在创建Memcached实例后,您需要手动连接至Memcached实例管理数据或将应用服务器连接至数据库进行业务部署。

白名单设置

  • 我们需要把我们云服务器的IP设置添加如白名单,这样才能正常的进行应用服务器和Memcached直接的正常通信。

1、在云数据库管理面板中的Memcached产品的白名单中进行添加

image-72.png

2、在白名单添加面板中填入名称信息、相应的规则、对应关联的实例。添加后记得启用规则。

  • 这里的规则指的是对需要连接IP信息进行添加,默认拦截所有IP。

image-73.png

image-74.png

连接实例

1、登录我们的应用服务器(以Linux为例),测试网络端口情况(如:telnet、tcping)。

image-16.png

2、安装Memcached连接客户端测试。这里使用go语言编写了一个连接测试代码。用代码go build打包下。

package main

import (
	"flag"
	"fmt"
	"log"
	"os"

	"github.com/memcachier/mc/v3"
)

func main() {
	// Define CLI flags
	ip := flag.String("ip", "127.0.0.1", "Memcached server IP address")
	port := flag.String("port", "11211", "Memcached server port")
	username := flag.String("username", "root", "Memcached username")
	password := flag.String("password", "", "Memcached password")
	key := flag.String("key", "", "Key to read/write in Memcached")
	value := flag.String("value", "", "Value to write to Memcached")

	// Custom usage message
	flag.Usage = func() {
		fmt.Fprintf(os.Stderr, "Usage: %s [options]\\n", os.Args[0])
		fmt.Fprintf(os.Stderr, "Options:\\n")
		flag.PrintDefaults()
		fmt.Fprintf(os.Stderr, "\\nExamples:\\n")
		fmt.Fprintf(os.Stderr, "  Connect to Memcached server:\\n")
		fmt.Fprintf(os.Stderr, "    %s -ip 10.104.1.9 -port 11211 -username root -password abcABC@123\\n", os.Args[0])
		fmt.Fprintf(os.Stderr, "  Write key-value pair:\\n")
		fmt.Fprintf(os.Stderr, "    %s -ip 10.104.1.9 -port 11211 -username root -password abcABC@123 -key example_key -value example_value\\n", os.Args[0])
		fmt.Fprintf(os.Stderr, "  Read value:\\n")
		fmt.Fprintf(os.Stderr, "    %s -ip 10.104.1.9 -port 11211 -username root -password abcABC@123 -key example_key\\n", os.Args[0])
		fmt.Fprintf(os.Stderr, "  Retrieve server statistics:\\n")
		fmt.Fprintf(os.Stderr, "    %s -ip 10.104.1.9 -port 11211 -username root -password abcABC@123\\n", os.Args[0])
	}

	// Parse CLI flags
	flag.Parse()

	// Create a new Memcached client
	client := mc.NewMC(fmt.Sprintf("%s:%s", *ip, *port), *username, *password)
	if client == nil {
		log.Fatalf("NewMC(%s:%s, %s, %s) returned error", *ip, *port, *username, *password)
	}
	defer client.Quit()

	if *key != "" {
		if *value != "" {
			// Write data to Memcached
			ok, err := client.Set(*key, *value, 0, 0, 0)
			if err != nil || ok == 0 {
				log.Fatalf("Error setting key '%s': %v", *key, err)
			}
			fmt.Printf("Set key '%s' with value '%s'\\n", *key, *value)
		} else {
			// Read data from Memcached
			value, _, _, err := client.Get(*key)
			if err != nil {
				log.Fatalf("Error getting key '%s': %v", *key, err)
			}
			fmt.Printf("Retrieved value for key '%s': %s\\n", *key, value)
		}
	} else {
		// Get Memcached statistics
		stats, err := client.Stats()
		if err != nil {
			log.Fatalf("Error getting stats: %v", err)
		}

		// Print statistics
		for server, stat := range stats {
			fmt.Printf("Stats for server %s:\\n", server)
			for key, value := range stat {
				fmt.Printf("%s: %s\\n", key, value)
			}
		}
	}
}

3、然后在服务器服务器上连接使用,这里我打包成mc-cli,然后再Linux服务器给予执行权限后执行使用。

chmod +x mc-cli
./mc-cli --help 

image-75.png

  • 连接我们的Memcached实例。注意输入密码信息。

./mc-cli -ip 内网IP -port 11211 -username root -password 密码

image-76.png


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: