redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis是一个NoSQL数据库
不仅仅是数据库!
优点:
缺点:
但优点还是大于缺点的,Redis是单线程的、基于key-value的,速度极快,可以提高系统的可用性,具有更好的高并发吞吐量能力~
进入 /usr/local/,新建redis目录
1 |
mkdir redis |
下载redis
1 |
wget http://download.redis.io/releases/redis-5.0.7.tar.gz |
解压刚刚下载的redis
1 |
tar -zvxf redis-5.0.7.tar.gz |
查看目录文件;
1 |
ll |
输入命令编译文件
1 |
make |
输入命令安装:
1 |
make PREFIX=/usr/local/redi |
此命令会生成启动文件:
进入bin目录创建conf配置文件目录
1 2 |
cd bin mkdir conf |
将配置文件复制到bin目录内:
1 |
cp /usr/local/redis/redis-5.0.7/redis.conf config/ |
进入bin目录启动redis;
1 |
./redis-server # 启动服务 |
启动客户端:
1 |
./redis-cli # 启动客户端 |
连接成功!
进入Redis安装目录:
1 |
cd /usr/local/redis/redis-5.0.7/bin/config |
打开配置文件:
1 |
vim redis.conf |
修改如下:
保存并退出:
1 2 |
esc :wq |
查询80端口是否启动:
1 |
firewall-cmd --query-port=80/tcp |
可以看到,未启动
关闭Linux防火墙:
1 |
systemctl status firewalld |
新建基于Maven管理的Spring Boot项目,整合Redis,实现远程连接阿里云服务器测试!
导入依赖:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> |
测试类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com.wanshi.test;
import com.wanshi.MainApplication; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class) @SpringBootTest(classes = MainApplication.class) public class Test1 {
@Autowired private StringRedisTemplate redisTemplate;
@Test public void t1() { redisTemplate.opsForValue().set("xiaowang", "hello"); String xiaowang = redisTemplate.opsForValue().get("xiaowang"); System.out.println(xiaowang); } } |
执行结果:
Redis是一个NoSQL非关系型数据库,性能非常好,读写速度秒杀所有数据库,可以说是性能最好的数据库,Redis支持主从复制,缓存,底层采用key-value形式存储数据,速度非常快,性能很好,推荐使用,目前大部分企业都在使用Redis!