redis学习之安装配置

在当前的开发环境中,学习分布式缓存是开发里面的重要环节之一。

最近学习了一下redis,虽然网络上一大把教程和笔记,但是每个人的学习经历不一样,好记性不如烂笔头,在这里记录一下学习内容,就算给自己加深一些印象吧。

准备工作

1、redis下载

redis需要到官网上下载redis相关的压缩包,根据自己的需要选择相应的版本。我这里学习用到的是现在这个时间的最近的版本,redis5.0.3版本,linux系统是centos7

新版本里面的部分命令和老版本的命令不一致,譬如redis的集群 ,redis主从复制配置等,在配置文件中有少许变动

废话太多,下面上redis安装步骤

 2、上传到centos服务器的 /usr/local/src目录下,解压

tar zxvf redis-5.0.3.tar.gz

#进入redis目录

cd redis-5.0.3

#编译

make

#编译完成之后,指定安装目录,我这里redis安装到/usr/local/redis目录下,这里指定目录的时候不需要考虑目录是否存在,不存在的话安装的过程中会主动创建

make PREFIX=/usr/local/redis install

3、安装完成之后, 可以在/usr/local路径下找到redis目录,进入会看到一个bin目录,该目录里面的结构如下图

 

到这里,redis的安装也差不多了,接下来就是redis的相关配置

copy一份redis.conf到redis安装目录下,方便后期自定义配置

cp /usr/local/src/redis-5.0.3/redis.conf /usr/local/redis/

redis相关配置就是redis.conf文件

 redis配置文件修改属性值,设置为后台启动,这样不会阻塞进程,在当前回话窗口可以继续操作其他

daemonize yes

测试一下redis默认配置启动

#启动服务器 
./bin/redis-server ./redis.conf
#进入redis客户端,默认端口,6379,这里省略了默认端口输入 -p 6379
.
/bin/redis-cli

  进入客户端

测试输入ping 返回pong则表示redis安装 启动成功!

接下来就是redis的相关配置,

需要注意的地方:

#配置访问ip,默认是127.0.0.1,本地访问,但是在项目中想要远程访问就需要将地址改成0.0.0.0
bind 0.0.0.0

#缓存方式配置
#启用rdb缓存方式,默认方式rdb
rdbchecksum yes
#rdb名称
dbfilename dump.rdb
#rdb的目录
dir ./
#aof方式,默认不启用no,如果启用设置yes
appendonly no
#aof名称
appendfilename "appendonly.aof"

#redis密码
requirepass foobared
#设置redis端口,默认6379
port 6379 #主从复制配置 #配置redis主从关系,通常情况下一个主库需要至少两个从库,如果设置主从复制关系,则需配置主库ip和端口 #replicaof
<masterip> <masterport> #如果主库redis设置了密码,这需要设置 # masterauth <master-password>

配置方面就这些,其实也挺简单的,但是不会的时候就觉得挺难的

 配置完成之后,需要在服务器防火墙中添加redis对应的端口或者关闭防火墙才可以远程连接,不然java客户端Jedis无法连接

centos7 添加防火墙的方法:

firewall-cmd --zone=public --add-port=7799/tcp --permanent

  firewall-cmd --reload

==============================================

java代码操作redis

在java项目中添加redis客户端jar包,maven项目添加依赖

 <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>

java测试代码一

public class RedisTest {
    public static void main(String[] args) {
        //jedis连接redis数据库,host String类型,redis的ip,port int类型
        Jedis jedis = new Jedis("192.168.1.10", 7799);
        //password redis.conf中设置密码
        jedis.auth("dayu");
        Set<String> keys = jedis.keys("*");
        for (String key : keys) {
            System.out.println(key);
        // ....
        // redis相关的命令在jedis中都可以操作
        }
    }
}

java测试代码二,连接池获取jedis信息

 public static void test2() {
        //配置jedis连接池信息
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //...其他配置,这里的配置只是测试使用,并没有做过多思考
        jedisPoolConfig.setMaxIdle(20);
        jedisPoolConfig.setMinIdle(5);
        jedisPoolConfig.setMaxTotal(1000);
        jedisPoolConfig.setBlockWhenExhausted(true);

        //装配到JedisPool中
        JedisPool pool = new JedisPool(jedisPoolConfig, "192.168.1.10",7799);
        //从连接池中获取jedis
        Jedis jedis = pool.getResource();
        //如果redis配置了密码,这里需要设置连接密码信息
        jedis.auth("dayu");
        //redis的相关操作
        jedis.set("city", "nanjing");
        System.out.println(jedis.get("city"));
    }

到这里redis的单机版就算是告一段落了,后面再记录集群版,多机主从配置的学习记录

原文地址:https://www.cnblogs.com/dayu007/p/10176056.html