Redis6.0之前是单线程的,Redis6.0之后开始支持多线程。 redis内部使用了基于epoll的多路服用,也可以多部署几个redis服务器解决单线程的问题; redis主要的性能瓶颈是内存和网络;
1. 先把Redis的连接池拿出来 JedisPool pool = new JedisPool(new JedisPoolConfig(),"127.0.0.1"); Jedis jedis = pool.getResource(); 2. 存取值jedis.set("key","value"); jedis.get("key"); jedis.del("key");
1. 基于本机内存的缓存,当调用api访问数据库时,假如此过程需要2秒,如果每次请求都要访问数据库,那将对服务器造成巨大的压力,如果将此sql的查询结果存到Redis中,再次请求时,直接从Redis中取得,而不是访问数据库,效率将得到巨大的提升,Redis可以定时去更新数据(比如1分钟)。
为了保证效率,数据都是缓存在内存中,Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
共享对象池 对象共享池指Redis内部维护[0-9999]的整数对象池。所以Redis内存维护一个[0-9999]的整数对象池,用于节约内存。除了整数值对象,其他类型如list,hash,set,zset内部元素也可以使用整数对象池。