操作环境是阿里云服务器
redis安装
1.获取redis资源
(1)官网下载链接:https://redis.io/download
(2)使用命令下载:wget http://download.redis.io/releases/redis-6.0.8.tar.gz
2.解压 / 删除压缩包
tar -xzvf redis-6.0.8.tar.gz //解压
rm -rf redis-6.0.8.tar.gz
3.redis安装
cd redis-6.0.8/
make//编译
cd src/
make install PREFIX=/usr/local/redis
4.移动配置文件到安装目录下
现在redis文件下创建etc,再把配置文件redis.conf移到etc目录下
cd …/
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc
5.配置redis为后台启动
vim /usr/local/redis/etc/redis.conf
将 daemonize no 改成 daemonize yes
6.配置redis开机启动
vim /etc/rc.local
添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
7.开启redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
8.将redis-cli,redis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用
cp /usr/local/redis/bin/redis-server /usr/local/bin/
cp /usr/local/redis/bin/redis-cli /usr/local/bin/
9.设置redis密码
(1)执行命令:redis-cli
(2)查看现有密码:config get requirepass
(3)设置redis密码:config set requirepass ****(****为你要设置的密码)
(4)重启redis服务测试连接
a.执行命令:redis-cli -h 127.0.0.1 -p 6379 -a ****(****为你设置的密码)
b.输入 redis-cli 进入命令模式,使用 auth ‘*****’ (****为你设置的密码)
(5)查看后台进程及测试
查看进程:ps -ef |grep redis
重新登录测试结果:
10.redis设置外网访问
修改配置文件:vim /usr/local/redis/etc/redis.conf
注释掉bind 的ip 并且把protected-mode (保护模式)改为no
手动设置远程访问密码:requirepass ‘xxxxxx’ (****为你要设置的密码)
停止redis:pkill redis
重新启动:redis-server /usr/local/redis/etc/redis.conf
11.常用命令
redis-server /usr/local/redis/etc/redis.conf //启动redis
pkill redis //停止redis 或 使用 kill -9 杀死进程
卸载redis:
rm -rf /usr/local/redis //删除安装目录
rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本
rm -rf /root/redis-6.0.8 //删除redis解压文件夹
远程连接
远程连接环境:Java、Maven
1.依赖包
<!-- redis依赖包 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.2.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2.redis连接单元测试
package com.sslt.test;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class RedisTest {
@Test
public void demo1(){
// 1. 设置IP地址和端口
Jedis jedis = new Jedis("连接IP", 6379);
jedis.auth("abcd1234"); // 设置的requirepass连接密码
// 2. 保存数据
jedis.set("mykey","Hello Redis...");
// 3. 获取数据
String value = jedis.get("mykey");
System.out.println(value);
// 4.释放资源
jedis.close();
}
}
3.Spring连接池连接配置
(1)配置文件:serviceconfig.properties
#Redis配置信息
redis.host=连接的IP
redis.port=6379
redis.password=连接的密码
#客户端连接超时时间
redis.timeout=30000
#可用数据库数
redis.database=0
(2)配置文件:spring-jedis.xml
单机和集群的配置任选其一,在这只是 单机连接,至于集群可参考其他博主文章
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<!-- 加载配置属性文件 -->
<context:property-placeholder location="classpath:serviceconfig.properties" ignore-unresolvable="true"/>
<!-- 连接池配置:可以放在属性配置文件中 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 最大连接数 -->
<property name="maxTotal" value="100" />
<!-- 最大空闲连接数 -->
<property name="maxIdle" value="10" />
<!-- 每次释放连接的最大数目 -->
<property name="numTestsPerEvictionRun" value="1024" />
<!-- 释放连接的扫描间隔(毫秒) -->
<property name="timeBetweenEvictionRunsMillis" value="30000" />
<!-- 连接最小空闲时间 -->
<property name="minEvictableIdleTimeMillis" value="1800000" />
<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
<property name="softMinEvictableIdleTimeMillis" value="10000" />
<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
<property name="maxWaitMillis" value="1500" />
<!-- 在获取连接的时候检查有效性, 默认false -->
<property name="testOnBorrow" value="true" />
<!-- 在空闲时检查有效性, 默认false -->
<property name="testWhileIdle" value="true" />
<!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
<property name="blockWhenExhausted" value="false" />
</bean>
<!-- 单机连接的配置,任选其一 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="poolConfig" ref="jedisPoolConfig"/>
<constructor-arg name="host" value="${redis.host}"/>
<constructor-arg name="port" value="${redis.port}" type="int"/>
<constructor-arg name="timeout" value="${redis.timeout}" type="int" />
<constructor-arg name="password" value="${redis.password}" />
<constructor-arg name="database" value="${redis.database}" type="int" />
</bean>
<!-- 集群环境的配置,任选其一 -->
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg name="nodes">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="121.101.212.46"></constructor-arg>
<constructor-arg index="1" value="7001"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="121.101.212.46"></constructor-arg>
<constructor-arg index="1" value="7002"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="121.101.212.46"></constructor-arg>
<constructor-arg index="1" value="7003"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="121.101.212.46"></constructor-arg>
<constructor-arg index="1" value="7004"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="121.101.212.46"></constructor-arg>
<constructor-arg index="1" value="7005"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="121.101.212.46"></constructor-arg>
<constructor-arg index="1" value="7006"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="121.101.212.46"></constructor-arg>
<constructor-arg index="1" value="7007"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="121.101.212.46"></constructor-arg>
<constructor-arg index=<