什么是Redis?
Redis 是以key-value形式存储的Nosql,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
Java简单操作Redis
public class RedisTest {
/**
* 简单连接
*/
@Test
public void test1(){
//获取连接对象
Jedis conn = new Jedis("127.0.0.1",6379);
conn.auth("root");
//操作连接对象
conn.set("name", "张三");
System.out.println(conn.get("name"));
//关闭连接对象
conn.close();
}
/**
* 通过连接池连接
*/
@Test
public void test2() {
//创建配置对象
JedisPoolConfig c = new JedisPoolConfig();
//配置配置对象
c.setMaxIdle(5);//最小连接数,也是空闲时最大连接数
c.setMaxTotal(10);//最大连接数
c.setMaxWaitMillis(2000);//获取连接的最大等待时间
c.setTestOnBorrow(true);//在使用连接时,测试连接对象是否畅通
//创建连接池对象
JedisPool jedisPool = new JedisPool(c,"127.0.0.1",6379,2000,"root");
//获取到连接对象
Jedis jedis = jedisPool.getResource();
jedis.set("age", "哈哈");
System.out.println(jedis.get("age"));
//判断如果是连接池就释放连接,如果不是就关闭连接
jedis.close();
}
}
public class JedisPoolTest {
@Test
public void testKey(){
//使用工具类获取连接对象
Jedis jedis = JedisPoolUtil.INSTANCE.createJedis();
jedis.flushDB();
//清除之后判断key是否存在
System.out.println(jedis.exists("name"));//false
jedis.set("name", "cx");
//设置之后查看key是否存在
System.out.println(jedis.exists("name"));//true
//获取key的值
System.out.println(jedis.get("name"));
//设置key 的生存时间
jedis.expire("name", 10);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("key的剩余时间"+jedis.ttl("name"));
//释放资源
JedisPoolUtil.INSTANCE.closedJedis(jedis);
}
/**
* String的基本操作
*/
@Test
public void testString() {
Jedis jedis = JedisPoolUtil.INSTANCE.createJedis();
//先清除所有的key
jedis.flushDB();
//添加一个
jedis.set("name","hello" );
System.out.println(jedis.get("name"));
//修改
jedis.set("name", "nihaoa");
System.out.println(jedis.get("name"));
//追加
jedis.append("name", "123");
System.out.println(jedis.get("name"));
//删除
jedis.del("name");
System.out.println(jedis.get("name"));
JedisPoolUtil.INSTANCE.closedJedis(jedis);
}
/**
* List的操作
*/
@Test
public void testList() {
Jedis jedis = JedisPoolUtil.INSTANCE.createJedis();
//设置列,从左边插入
jedis.flushDB();
jedis.lpush("cx","aa","bb","cc");
List<String> cx = jedis.lrange("cx", 0, -1);
System.out.println("-----------------------");
//从右边插入
jedis.rpush("cx","aa","bb","cc");
List<String> cx1 = jedis.lrange("cx", 0, -1);
for (String s : cx1) {
System.out.print(s+",");
}
jedis.lrem("cx", -1, "aa");
System.out.println("---");
List<String> cx2 = jedis.lrange("cx", 0, -1);
for (String s : cx2) {
System.out.print(s+",");
}
JedisPoolUtil.INSTANCE.closedJedis(jedis);
}
}