1.redis的概念
关系型数据库:mysql---关系型数据库:mysql oracle sqlServer
非关系型数据库:NoSQL,redis只是一个nosql
Redis 是一个高性能的开源的、C语言写的Nosql(非关系型数据库),数据保存在内存中。
Redis 是以key-value形式存储的Nosql,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
2.使用场景
1.*缓存
经常查询数据,不经常变化的数据,放到读速度很快的空间(内存),以便下次访问减少时间。减轻压力(数据库的压力),减少访问时间.而redis就是存放在内存中的。
2.计数器、防暴力攻击等等
3.安装redis
Redis 的官方下载站是 http://redis.io/download,可以去上面下载最新的安装程序下来==》Linux服务器版本的,官方没有windows版本的,github上有提供windows版本的:
https://github.com/ServiceStack/redis-windows/blob/master/downloads/redis64-2.8.12.zip
官网:redis.io
中文网:redis.cn
4.操作redis
1.指令操作--百度
2.java操作
@Test
public void test(){
/*
通过连接池操作redis可以提高效率
*/
//先获取连接池配置对象
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//设置相关参数
jedisPoolConfig.setMaxTotal(10);//忙时最大访问数量
jedisPoolConfig.setMaxIdle(5);//闲时最大访问数
jedisPoolConfig.setMaxWaitMillis(3*1000);//最大等待时间
jedisPoolConfig.setTestOnBorrow(true);//测试连接是否通畅
//获取连接池对象
JedisPool jedisPool = new JedisPool(jedisPoolConfig,"地址",端口号,3*1000,"密码");
//通过连接池对象获取连接
Jedis jedis = jedisPool.getResource();
jedis.set("飞机", "XX");
jedis.lpush("username","wer");
jedis.lpush("username","111");
jedis.rpush("username","222");
System.out.println(jedis.lpop("username"));
System.out.println(jedis.lrange("username", 0, -1));
//操作api
Set<String> keys = jedis.keys("*");
System.out.println(keys);
for (String key : keys) {
System.out.println(key);
System.out.println(jedis.get(key));
}
//关闭资源
jedisPool.close();
jedis.close();
}
4.淘汰策略
淘汰一些数据,达到redis数据都是有效的,确保内容优化。选择合适的淘汰策略进行淘汰
淘汰一些数据,达到redis数据都是有效的。选择合适的淘汰策略进行淘汰。
volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据
redis 确定驱逐某个键值对后,会删除这个数据并,并将这个数据变更消息发布到本地(AOF 持久化)和从机(主从连接)。
当redis存放的数据到达配置的最大内容后,会按照配置淘汰策略进行淘汰.
5.持久化配置
Redis 提供了两种不同级别的持久化方式:RDB和AOF,可以通过修改redis.conf来进行配置.
1.1. RDB模式
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式.
如何关闭 rdb 模式:
save ""
# save 900 1 //至少在900秒的时间段内至少有一次改变存储同步一次
# save xxx
# save 60 10000
1.2. AOF追加模式
AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。
如何开启aof模式:
appendonly yes //yes 开启,no 关闭