redis學習筆記

1.redis的概念

关系型数据库:mysql---关系型数据库:mysql oracle sqlServer

非关系型数据库:NoSQLredis只是一个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 提供了两种不同级别的持久化方式:RDBAOF,可以通过修改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 关闭

 

原文地址:https://www.cnblogs.com/wgyi140724-/p/10560801.html