Java redis入门

来源:互联网 发布:ppt拆分合并软件 编辑:程序博客网 时间:2024/05/17 03:07

Redis 简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
• Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
• Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
• Redis支持数据的备份,即master-slave模式的数据备份。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
Redis字符串(String)
用于管理字符串,基本的命令 set key value get key
Redis哈希(hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素列表的头部(左边)或者尾部(右边)。
Redis集合(Set)
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
Redis有序集合(sorted set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
Redis发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis事务
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
• 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
• 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
一个事务从开始到执行会经历以下三个阶段:
• 开始事务。
• 命令入队。
• 执行事务。
Java连接redis实例
连接redis服务

import redis.clients.jedis.Jedis;public class RedisJava {   public static void main(String[] args) {      //连接本地的 Redis 服务      Jedis jedis = new Jedis("localhost");      System.out.println("Connection to server sucessfully");      //查看服务是否运行      System.out.println("Server is running: "+jedis.ping()); }}

Redis字符串实例

import redis.clients.jedis.Jedis;public class RedisStringJava {   public static void main(String[] args) {      //连接本地的 Redis 服务      Jedis jedis = new Jedis("localhost");      System.out.println("Connection to server sucessfully");      //设置 redis 字符串数据      jedis.set("runoobkey", "Redis tutorial");     // 获取存储的数据并输出     System.out.println("Stored string in redis:: "+ jedis.get("runoobkey")); }}

Redis list实例

import redis.clients.jedis.Jedis;public class RedisListJava {   public static void main(String[] args) {      //连接本地的 Redis 服务      Jedis jedis = new Jedis("localhost");      System.out.println("Connection to server sucessfully");      //存储数据到列表中      jedis.lpush("tutorial-list", "Redis");      jedis.lpush("tutorial-list", "Mongodb");      jedis.lpush("tutorial-list", "Mysql");     // 获取存储的数据并输出     List<String> list = jedis.lrange("tutorial-list", 0 ,5);     for(int i=0; i<list.size(); i++) {       System.out.println("Stored string in redis:: "+list.get(i));     } }}

Redis keys实例

import redis.clients.jedis.Jedis;public class RedisKeyJava {   public static void main(String[] args) {      //连接本地的 Redis 服务      Jedis jedis = new Jedis("localhost");      System.out.println("Connection to server sucessfully");     // 获取数据并输出     List<String> list = jedis.keys("*");     for(int i=0; i<list.size(); i++) {       System.out.println("List of stored keys:: "+list.get(i));     }   }}
0 0