一、redis是什么?
1、redis简介
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster
redis是一个开源的(BSD协议),内存数据结构存储应用。可以被用来作为数据库,缓存,消息代理,它支持字符串,哈希,列表,集合以及有序集合等五种数据结构对于范围查询,位图映射,日志,地理空间索引的位置查找和流式数据结构。redis有内部功能包含复制,LUA脚本,LRU驱逐,事务和不同级别磁盘存储,并且提供了高可用性通过 Redis Sentinel,提供自动分区通过Redis Cluster。
2、redis与memached的区别
2.1、redis拥有持久化功能而meamched没有,所有redis可以在存储(缓存,存储),而meamched只能用作缓存。
2.2、redis存储的数据结构很丰富有五种,分别是字符串,集合,列表,哈希,有序集合。而meamched只支持字符串。
核心的区别在于这两点,详细的信息可以参考:https://www.cnblogs.com/tuyile006/p/6382062.html
二、redis的安装
1、下载redis
#进入存放目录
cd /usr/local/src
#下载
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
#创建解压目录,并在该目录下进行操作
mkdir /usr/local/redis
cd /usr/local/redis
#解压
tar -xvf ../src/redis-5.0.2.tar.gz
#解压的时候出现,liunx系统的时间和redis的confige时间有冲突
#编译
make
#最好进行测试查看是否编译正确
make test
#中间出现(可能出现: need tcl >8.4这种情况, yum install tcl)
yum install tcl
#安装
make PREFIX=/usr/local/redis install
2、 redis 安装后的目录
redis-benchmark 性能测试工具
redis-check-aof 日志文件检测工(比如断电造成日志损坏,可以检测并修复)
redis-check-dump 快照文件检测工具,效果类上
redis-cli 客户端
redis-sentinel -> redis-server Sentinel(哨岗、哨兵)是redis的高可用性解决方案
redis-server 服务
三、redis的测试
1、redis的服务端和客户端连接测试
复制redis.conf到目录下,启动服务使用该配置
#启动 redis-server
./bin/redis-server ./redis.conf
#启动客户端,测试是否可以连接服务,并做一些测试
[root@bogon redis]# ./bin/redis-cli
#连接成功
127.0.0.1:6379> set name "xieqx"
OK
127.0.0.1:6379> get name
"xieqx"
127.0.0.1:6379>
让redis以后台进程的形式运行
编辑conf配置文件,修改如下内容;
daemonize yes
2、使用java连接redis服务端(使用springBoot+redis)
2.1、mven添加依赖
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.2、配置
#redis配置
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=192.168.47.137
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
#spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
#spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
#spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
#spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
#spring.redis.time
2.3、测试demo
public class RedisDemoTest {
@Autowired
private RedisTemplate redisTemplate;
//对于字符串的操作
@Test
public void testAdd(){
ValueOperations<String,String> valueOperations = redisTemplate.opsForValue();
//写入缓存
valueOperations.set("name","无敌破坏王");
//获取字段值
String value = valueOperations.get("name");
log.info("name : {}",value);
redisTemplate.delete("name");
value = valueOperations.get("name");
log.info("name : {}",value);
}
}