Redis数据库基本认知
简单的讲一下Redis数据库的基本常识---->作为记录
概述
- Redis:是什么 答:非关系型数据库(NOSQL)
- Redis有什么好处 答:通过内存存储数据,查询快,支持持久化安全,并发处理能力强,支持集群
- Redis主要使用场景 答:中央缓存—>使用Mybatis的二级缓存可能导致缓存数据不同步,导致数据失衡。还有其他很多
使用
1.下载 --在官网上下载—官网只有linux的版定 -----windows自己下载
2.使用–
下次完成之后
3. 命令行使用
双击服务端,不加载配置文件的开启服务端,再双击客户端就可以直接使用输入命令就可以直接使用
4.加载配置文件启动服务端
当前目录下 cmd
就可以了
5.配置文件
配置文件可配置 密码:requirepass–>设置它 淘汰机制 maxmemory-policy–>设置它 持久化配置(两种1.aof模式—>设置它appendonly 2.rdb模式 -->设置save)
6. 淘汰机制
volatile-lru : 设置过期的数据—>不常用的淘汰
volatile-ttl : 设置过期的数据—>快要过期的淘汰
volatile-random :设置过期的数据–>随机淘汰
allkeys-lru:不常用的淘汰
allkeys-random:随机淘汰
no-enviction–禁止淘汰
7.持久化
aof -->保存你的指令操作—>在访问在执行你的操作达到数据存储的效果---->不会保持你的查询指令操作
rdb–>保持你的数据
8.java客户端---->(jedis)
导包
/**
* 测试Jedis客户端
*/
@Test
public void testJedis() {
/*1.获得Jedis对象*/
Jedis jedis = new Jedis();
/*如果配置文件加载有密码就输入密码
* 异常: redis.clients.jedis.exceptions.JedisDataException: ERR operation not permitted //没有密码
* */
jedis.auth("zpshuai");
jedis.set("name", "zp");
jedis.lpush("key", "1", "2", "3");
jedis.rpush("key", "3", "2", "1");
String key1 = jedis.lpop("key");
String key2 = jedis.rpop("key");
System.out.println("2222222222222222222222222" + key1);
System.out.println("3333333333333333333333333" + key2);
List<String> key = jedis.lrange("key", 0, -1);
key.forEach(e -> {
System.out.println(e);
});
String name = jedis.get("name");
System.out.println(name);
jedis.close();
}
连接池的使用
@Test
public void testJedisPool() {
/*获得连接池*/
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
/*获得连接池对象*/
JedisPool jedisPool = new JedisPool(poolConfig, "127.0.0.1", 6379, 1000 * 3, "zpshuai");
/*获得连接jedis对象*/
Jedis jedis = jedisPool.getResource();
String name = jedis.get("name");
System.out.println(name);
jedis.lrange("key", 0, -1).forEach(e -> {
System.out.println(e);
});
jedis.flushDB();
jedis.del("name");
jedis.close();
jedisPool.close();
}
------->简单使用