ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis學習筆記

2019-03-19 19:50:56  阅读:408  来源: 互联网

标签:筆記 数据库 redis jedis 學習 淘汰 数据 jedisPoolConfig


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 关闭

 

 

标签:筆記,数据库,redis,jedis,學習,淘汰,数据,jedisPoolConfig
来源: https://www.cnblogs.com/wgyi140724-/p/10560801.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有