redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
首先到此下载驱动包:https://mvnrepository.com/artifact/redis.clients/jedis
java操案例:
import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.params.SetParams; public class RedisTest { static Jedis Redis = null; public static void main(String[] args) { //连接 Redis 服务 Redis = new Jedis("127.0.0.1");//默认6379端口号 Redis.auth("123456");//密码(没有可以忽略此步) //查看服务是否连接运行成功 System.out.println("服务正在运行: "+Redis.ping()); //打印所有key=================================== Set<String> kS = Redis.keys("*"); for (String string : kS) { System.out.print(string); } //存储key类型数据================================ Redis.set("Acg", "千反田爱瑠"); //设置数据过期时间30秒。 SetParams params = new SetParams();//更多操作信息进此对象查看。 Redis.set("Acg", "千反田爱瑠", params.ex(30)); //根据key取value System.out.println(Redis.get("Acg")); //存储list类型数据================================ //Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) //一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。 Redis.lpush("list", "伊卡洛斯"); Redis.lpush("list", "千反田爱瑠"); Redis.lpush("list", "菈菈·撒塔林·戴比路克"); // // 获取存储的数据并输出 List<String> list = Redis.lrange("list", 0 ,2); for(int i=0; i<list.size(); i++) { System.out.println("value为: "+list.get(i)); } //存储Hash类型数据================================ //Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。 //Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 Map<String, String> map = new HashMap(); map.put("天降之物", "伊卡洛斯"); map.put("冰果", "千反田爱瑠"); map.put("出包王女", "菈菈·撒塔林·戴比路克"); // 将map存入redis中 Redis.hmset("Acg", map); // 取出redis中的map进行遍历 Map<String, String> userMap = Redis.hgetAll("Acg"); for (Map.Entry<String, String> item : userMap.entrySet()) { System.out.println(item.getKey() + " : " + item.getValue()); } //存储Set类型数据================================ //Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 //Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 //集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 //首先删除Redis中的原有的键 Redis.del("Acg"); // 在集合Acg中,添加元素 Long myset = Redis.sadd("Acg", "伊卡洛斯", "千反田爱瑠", "菈菈·撒塔林·戴比路克", "d"); // 获取集合的长度 System.out.println("长度:" + Redis.scard("Acg")); // 迭代器遍历集合,获取其元素 Set<String> sets = Redis.smembers("Acg"); Iterator<String> iterator = sets.iterator(); System.out.println("Acg的成员是: "); while(iterator.hasNext()){ String it = iterator.next(); System.out.println(it); } } }
发表评论