之前安装过也使用过的的Redis的,总结一下安装的过程吧。(其实和Nginx的的是一样的安装方法,C编写,编译安装,稍微麻烦一下,但是速度快。对比的Tomcat的(JAVA))
环境搭建:CentesOS 7,redis-3.0.0.tar.gz,SecureCRT。RedisClient客户端.
首先将下载的安装包上传的的Linux下,获取官网的的的Redis的对应版本的链接,使用了wget的命令都可以的。
由于redis的的是由Ç语言开发的,所以要安装一下GCC的编译环境。(使用Yum在线安装)
yum install -y gcc
检查一下是否安装成功了.
rpm -qa |grep gcc
然后解压到指定的目录(这里没有指定解压目录,就是当前所在目录)
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
tar -zxvf redis-3.0.0.tar.gz
进入到指定刚才解压的目录里面
cd redis-3.0.0
然后就是编译了
使用 make命令.
make
接下来将redis的的安装到指定的目录里面(下面的那个redis的的不需要提前创建的)
使用PREFIX = / usr / local / src / redis安装至指定目录里面.
make install PREFIX=/usr/local/src/redis
来到在/ usr / local / src/ redis的目录下
进入仓目录里面发现没有redis.conf的配置文件。
将Redis的的-3.0.0的目录下的redis.conf复制到刚才的仓目录下的。
cp redis.conf / usr / local / src / redis / bin
cd / usr / local / src / redis / bin
接下来就是启动的Redis的了的.Redis的启动的有前台启动和后台启动的两种方式的。
首先介绍一下前台启动:
cd bin
./redis-server
前台启动的弊端:这个窗口不能关闭的如果关闭了Redis的的服务就关闭了的。
使用后端启动的方式。先将前台启动的方式给关闭了的。
./redis-cli -p 6379(端口号,不是进程号)shutdown
修改redis.conf下的配置文件
vim redis.conf
后台启动:BIN目录下。
./redis-server ./redis.conf
查看启动进程:(挂载配置文件)
ps -ef | grep -i redis
至此Redis的的的启动就完成了的。
如果要使用远程连接,那就开放端口6379。
firewall-cmd --zone = public --add-port = 6379 / tcp --permanent
Redis的的的仓目录下的几个文件介绍
Redis的的基准测试:性能测试工具。
Redis的的检查,AOF:检查修复AOF文件
Redis的的检查转储:检查快照持久文件
Redis的的-CLI:Redis的的的客户端
Redis的的服务器:redis的的的服务器启动命令.
上面是完成的Redis的服务启动的。下面就启动客户端连接服务器的。
cd bin
使用一下:(设置值和获取值)
退出客户端连接的方式:(exit)
远程客户端连接:(redis设置登录密码)
vim redis.conf
官网上对于Redis For Windows的安装没看到相关的介绍.
GitHub上是提供Redis的Windows的版本的.链接.
下载解压至本地盘符下.
双击redis-server.exe启动服务端.redis-cli.exe启动客户端.但是这个时候启动的时候,Redis服务端闪退.
解决方法:
①:在cmd下运行而不是双击redis-server.exe:
②:或者是设置一下占用的内存.
redis-server.exe redis.windows.conf --maxmemory 200m
修改配置文件redis.windows.conf
:maxmemory 209715200(单位字节).
现在在cmd下运行.
启动客户端. 进行基本命令的操作使用.
3.1 首先是导入两个jar包.
3.2 测试Redis的10w数据写读耗费时间.使用了流水线技术.批量处理.本地测试.
import java.time.Duration;
import java.time.Instant;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Pipeline;
/**
* title: RedisDemo
* author:
* date:
* description:测试Redsi的10万数据写读耗费时间
* 开启流水线测试信息.
*/
public class RedisDemo {
public static void main(String[] args) {
JedisPoolConfig poolConfig=new JedisPoolConfig();
// 最大空闲连接数
poolConfig.setMaxIdle(50);
// 最大连接数
poolConfig.setMaxTotal(100);
// 最大等待毫秒数
poolConfig.setMaxWaitMillis(20000);
// 使用配置连接池
JedisPool pool=new JedisPool(poolConfig, "localhost", 6379);
// 获取Redis连接
Jedis jedis=pool.getResource();
// 配置客户端登录密码
jedis.auth("123456");
Instant start=Instant.now();
// 开启流水线
Pipeline pipeline=jedis.pipelined();
// 测试10万字符串数据的写入和读取
for(int i=1;i<=100000;i++){
// 设置key
pipeline.set("pipe-key-"+i, i+"");
// 读取key
pipeline.get("pipe-key-"+i);
}
// 返回结果.将执行过的命令以list集合返回结果.
List
运行结果:需要时间平均不到1s.
查看Redis的key数目.是一共10w条数据.
3.3 测试Redis的1秒写入.使用了流水线技术批量处理,而不是一条一条的发送命令.本地测试.PC内存8G
import java.time.Duration;
import java.time.Instant;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Pipeline;
/**
* title: RedisDemo
* @author:
* date:
* description:测试Redsi的每秒读写
* 之前是一条一条命令测试的.
* 开启流水线,批量执行.
*/
public class RedisDemo {
public static void main(String[] args) {
JedisPoolConfig poolConfig=new JedisPoolConfig();
// 最大空闲连接数
poolConfig.setMaxIdle(50);
// 最大连接数
poolConfig.setMaxTotal(100);
// 最大等待毫秒数
poolConfig.setMaxWaitMillis(20000);
// 使用配置连接池
JedisPool pool=new JedisPool(poolConfig, "localhost", 6379);
// 获取Redis连接
Jedis jedis=pool.getResource();
// 配置客户端登录密码
jedis.auth("123456");
Instant start=Instant.now();
// 开启流水线
Pipeline pipeline=jedis.pipelined();
int i=0;
// 测试10万字符串数据的写入和读取
while(true){
// 设置key
Instant end=Instant.now();
if(Duration.between(start, end).toMillis()>1000){
break;
}
i++;
pipeline.set("pipe-key-sed-"+i, i+"");
}
// 关闭连接
jedis.close();
pool.close();
System.out.println("redis每秒写入"+i+"次");
}
}
运行结果:平均每秒20W+.
此时,无论是程序中使用Jedis连接还是RedisClient连接都是可以的.