阿里云redis连接方法

redis-cli命令行客户端连接
redis-cli是原生Redis服务自带的命令行客户端,您可以通过redis-cli提供的简单命令来连接Redis实例。此处仅以Linux操作系统为例展开说明。

redis-cli命令行客户端安装(Linux)
登录阿里云阿里云服务器(Linux)。执行如下命令(请确保已经安装了wget),获取Redis安装包(redis-4.0.14.tar.gz)。(注:若出现DNS无法解析的相关报错,建议直接将该安装包手动下载并上传)wget http://download.redis.io/releases/redis-4.0.14.tar.gz说明
Redis官方下载地址http://redis.io/download,官网提供的安装包仅适用于Linux操作系统。
对于Windows操作系统,Redis下载地址参见https://github.com/microsoftarchive/redis/releases。
解压安装包。
tar -xvf redis-4.0.14.tar.gz
安装gcc编译环境。(如已安装,请确保gcc版本在9.0以上)
yum -y install gcc gcc-c++
进入redis-4.0.14目录,编译Redis客户端源码。

cd redis-4.0.14
make
make install
说明:
若安装时make install报错:zmalloc.h:50:31: error: jemalloc/jemalloc.h,则将make命令修改为:
make MALLOC=libc
make install
连接方法
在阿里云服务器Linux命令行,执行如下命令连接Redis实例。(注:如下命令,同时适用于标准版-单副本、标准版-双副本、集群版-双副本)
redis-cli -hhost> -pport> -apassword>或redis-cli -hhost> -pport>
Redis实例的内网连接地址,查看实例详情可获取内网连接地址。若为IPv4连接,内网地址输入IPv4的内网地址。若为IPv6连接,内网地址输入IPv6的内网地址。-p:Redis实例的内网服务端口。查看实例详情可获取内网服务端口。
Redis实例的连接密码(购买Redis实例时所设置的密码)。为了提高安全性,建议您使用B)连接命令(即不直接在命令行中输入密码,在执行连接命令后再输入authpassword>密码验证)。

开发语言客户端连接
任何兼容Redis协议的开发语言的客户端,均可连接访问云数据库Redis实例。云数据库Redis支持常见开源客户端SDK,如Java语言的客户端Redisson与Jedis、PHP语言的客户端phpredis、go语言的客户端redigo与go-redis、Python语言的客户端redis-py等。
以下仅以Java客户端、PHP客户端为例,展开说明。

Java连接样例
以spring boot集成redis为例,介绍Java连接redis的使用示例:
 
1. pom.xml引入如下依赖。
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2. 在配置文件application.properties中,添加如下配置。
spring.redis.database=0
spring.redis.host=10.142.112.50
spring.redis.port=30170
spring.redis.password=135Fdkl#111111112
# 连接超时时间 单位 ms(毫秒)
spring.redis.timeout=3000
#=========redis线程池设置=========
# 连接池中的最大空闲连接,默认值也是8。
spring.redis.jedis.pool.max-idle=200
#连接池中的最小空闲连接,默认值也是0。
spring.redis.jedis.pool.min-idle=200
# 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时
spring.redis.jedis.pool.max-wait=-1

3. 创建redis操作工具类。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
 
@Component
public class RedisClient {
 
    @Autowired
    private StringRedisTemplate redisTpl;
 
    public boolean set(String key, String value) {
        try {
            redisTpl.opsForValue().set(key, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
    public String get(String key) {
        return redisTpl.opsForValue().get(key);
    }
}
4. 创建controller。
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
@RequestMapping("/api/v1/redis")
public class RedisTestController {
 
    //得到redis封装类
    @Autowired
    private RedisClient redis;
    private static boolean a = true;
 
    //通过key值得到value字符串
    @GetMapping(value = "get")
    public Object get() {
 
        String value = redis.get("username");
        return JsonData.buildSuccess(value);
 
    }
 
    //将对象通过工具类转成String类型,存入redis中
    @GetMapping(value = "save_user")
    public Object saveUser() {
        User user = new User(1, "abc", "11", new Date());
        String userStr = JsonUtils.obj2String(user);
        boolean flag = redis.set("base:user:11", userStr);
        return JsonData.buildSuccess(flag);
 
    }
 
    //通过key值得到value值,让后将value转为对象
    @GetMapping(value = "find_user")
    public Object findUser() {
 
        String userStr = redis.get("base:user:11");
        User user = JsonUtils.string2Obj(userStr, User.class);
        return JsonData.buildSuccess(user);
 
    }
}