缓冲的功能,就是提高性能减少与数据库的交互
做到数据的实时性比较麻烦,需要在增删改的时候清空数据
Nosql,叫非关系型数据库,它的全名叫Not only sql。是针对关系型数据库来说的
为了解决高并发、高可用、高可扩展,大数据储存等一系列问题而产生的的数据库解决方案
区别一
关系型数据库是需要依赖数据库的关系的,比如说主外键,数据储存在硬盘上
非关系型数据库依赖特殊结果,比如redis是key-value的数据格式,数据存在内存中,可持久化
区别二
关系型数据库有主外键关系
非关系型数据库没有这个概念
区别三
关系型数据库:操作的是硬盘,效率低,安全性稍微高
非关系型数据库(redis)操作的是内存,效率高,但是不安全,数据可能丢失
**Redis是使用c语言开发的一个高性能键值Nosql数据库,Redis可以通过一些键值类型来存储数据 **
注意:Redis存的是key-value,但是key只能是字符串,value的取值有如下几种类型
del key
有顺序可重复
右压栈 是指数据从头添加,数据春旭往后排,类似数据向右压
左弹栈 是指数据从左边弹出
左压栈:表示数据从后添加
右弹栈:表示数据从后弹出
不可重复没有顺序
有序,不能重复
注意:每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。
key* 获得所有的key
key list* 获得以list开头的key
redis是把市局存在内存中的,如果我们的服务器关机,这个时候内存中的数据将不存在,所以要做持久化
当服务器再次启动的时候,Redis就会把本地数据加载到内存中
这种持久化方式是磨人的,不用任何配置
每一次操作或者每一秒,都会吧记录持久化到硬盘中(费资源),是每次还是每秒取决于配置
commons-pool2-2.3.jar
jedis-2.7.0.jar
/** * 连接池的使用 */ // @Test public void pool() { JedisPoolConfig config = new JedisPoolConfig(); // 最大空闲数 config.setMaxIdle(10); // 最大连接数 config.setMaxTotal(50); //通过配置类创建连接池 JedisPool pool = new JedisPool(config,"localhost",6379); // 在连接池中取出Jedis连接 Jedis jedis = pool.getResource(); jedis.set("haha","窗前明月光"); String haha = jedis.get("haha"); System.out.println(haha); }
host=localhost port=6379 maxIdle=10 maxTotal=50
public class JedisUtil { private static JedisPool jedisPool; static { InputStream in = JedisUtil.class.getClassLoader().getResourceAsStream("redis.properties"); Properties properties = new Properties(); try { properties.load(in); JedisPoolConfig config = new JedisPoolConfig(); // 最大空闲数 config.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle"))); // 最大连接数 config.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal"))); jedisPool = new JedisPool(config, properties.getProperty("host"), Integer.parseInt(properties.getProperty("port"))); } catch (IOException e) { throw new RuntimeException("配置文件加载失败"); } } /** * 这个是获得Jedis * * @return */ public static Jedis getJedis() { return jedisPool.getResource(); } /** * 释放资源 */ public static void release(Jedis jedis) { //这个表示当前jedis链接 放到我们链接池中 并不是关闭了 jedis.close(); } }
@Test public void fun() { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(50); config.setMaxIdle(10); JedisShardInfo info1 = new JedisShardInfo("localhost", 6379); JedisShardInfo info2 = new JedisShardInfo("localhost", 7777); List<JedisShardInfo> list = new ArrayList<>(); list.add(info1); list.add(info2); ShardedJedisPool pool = new ShardedJedisPool(config, list); ShardedJedis jedis = pool.getResource(); for (int i = 0; i <100; i++) { jedis.set("name"+i,"huige"+i); } jedis.close(); } }