Redis学习笔记,
redis学习笔记(1)
最近由于项目的实际需要,对当前比较流行的两款“缓存数据库”进行了学习,主要了解了redis数据库。
redis和mc的对比
1、redis可以用于数据的长期存储(这点是基于它的“持久化”技术),同时也可以用来做数据缓存;但是mc(memcached)只能用于数据缓存;
2、redis能够存储种类繁多的数据类型,比如: strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries。而mc只能存储strings, objects;
3、两者都可以用于集群环境,存储数据都采用key-value策略,都是Nosql数据库典型代表。
redis的安装
redis的基础命令使用
目前主要学习了redis的string操作、list链表操作
String
List
java-redis
在实际运用中,不仅仅需要学会在终端通过敲入命令的方式学习redis,还需要知道redis的API,用于编程,下面是我写的一个初级demo,主要测试上述两种数据结构:
package cn.com.redis;
import java.util.List;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class RedisJava {
public static void main(String[] args) {
// 连接redis服务
Jedis jedis = new Jedis("192.168.239.128", 6379);
// 查看服务是否运行
System.out.println("Server is running: " + jedis.ping());
redisStringAndLsit(jedis);
selectDB(jedis);
flushRedis(jedis);
}
private static void flushRedis(Jedis jedis) {
System.out.println("清库前,redis数据库的所有key:");
Set<String> allKeys = jedis.keys("*");
for(String temp : allKeys){
System.out.println(temp);
}
System.out.println(jedis.flushDB());
System.out.println("清库后,redis数据库的所有key的长度为:");
Set<String> allKeysEnd = jedis.keys("*");
System.out.println(allKeysEnd);
System.out.println(allKeysEnd.size());
}
private static void selectDB(Jedis jedis) {
String selector = jedis.select(1);
if(selector.equals("OK")){
System.out.println("选库成功!");
}
Set<String> keys = jedis.keys("*");
System.out.println(keys.size());
//跳转的数据库没有key则跳到默认数据库,并移动一个key
if(keys.size()==0){
if(jedis.select(0).equals("OK")){
jedis.move(jedis.keys("*").iterator().next(), 1);
}
}
jedis.select(1);
Set<String> keysEnd = jedis.keys("*");
System.out.println("数据库1中key的数量最后是:"+keysEnd.size());
System.out.println("被转移过来的key分别是: ");
for(String temp : keysEnd){
System.out.println(temp);
}
}
private static void redisStringAndLsit(Jedis jedis) {
jedis.set("name", "wuran");
// linklist
jedis.rpush("character", "a");
jedis.rpush("character", "b");
jedis.rpush("character", "c");
jedis.rpush("character", "d");
List<String> values=jedis.lrange("character", 0, -1);
for(String temp : values){
System.out.println(temp);
}
System.out.println("*********keys * **********");
Set<String> keySets = jedis.keys("*");
for(String key : keySets){
System.out.println(key);
}
System.out.println(jedis.get("name"));
//体现缓存数据库
System.out.println("before expire: "+jedis.ttl("name"));
jedis.expire("name", 30);
for(int i=0;i<30;i++){
System.out.println(jedis.ttl("name"));
if(i==10){
jedis.persist("name");
System.out.println("when i is 10: "+jedis.ttl("name"));
break;
}
}
System.out.println(jedis.get("name"));
}
}
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。