Jedis
Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持, 比如java、C、C#、C++、php、Node.js、Go等。 Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等 其中官方推荐使用Jedis和Redisson。
jedis的基本操作
方法 | 解释 |
---|---|
new Jedis(host, port) | 创建jedis对象,参数host是redis服务器地址,参数port是redis服务端口 |
set(key,value) | 设置字符串类型的数据 |
get(key) | 获得字符串类型的数据 |
hset(key,field,value) | 设置哈希类型的数据 |
hget(key,field) | 获得哈希类型的数据 |
lpush(key,values) | 设置列表类型的数据 |
lpop(key) | 列表左面弹栈 |
rpop(key) | 列表右面弹栈 |
del(key) | 删除指定的key |
jedis的基本操作
public static void main(String[] args) { /*使用jedis操作redis*/ //1.建立于redis连接 //public Jedis(String host, int port) // host,redis服务器的地址ip // port,redis服务器的端口号 Jedis jedis = new Jedis("localhost",6379); //2.执行添加数据的命名 //添加字符串 jedis.set("name","admin"); //添加list jedis.lpush("myList2","one","two","three"); //3.获取redis里面的数据 //获取字符串类型 String value = jedis.get("name"); //获取list类型 List<String> myList2 = jedis.lrange("myList2",0,-1); //输出 System.out.println("name="+value); System.out.println("myList2:"+ myList2); //4.关闭连接 jedis.close(); }
jedis连接池的使用
jedis连接资源的创建与销毁是很消耗程序性能,所以jedis为我们提供了jedis的池化技术, jedisPool在创建时初始化一些连接资源存储到连接池中,使用jedis连接资源时不需要创建, 而是从连接池中获取一个资源进行redis的操作, 使用完毕后,不需要销毁该jedis连接资源,而是将该资源归还给连接池,供其他请求使用。
jedisPool的基本使用
public static void main(String[] args) { /*使用jedis操作redis*/ //1.创建连接配置对象 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(10);//最大连接数 config.setMaxIdle(3);//最大空闲连接 config.setMaxWaitMillis(30000);//最大等待时间,毫秒 //2.创建连接池对象 //JedisPool(GenericObjectPoolConfig poolConfig, String host, int port) JedisPool jedisPool = new JedisPool(config,"localhost",6379); //3.从连接池里面获取redis连接 Jedis jedis = jedisPool.getResource(); //4.执行添加数据的命名 //添加字符串 jedis.set("name","admin"); //添加list jedis.lpush("myList2","one","two","three"); //5.获取redis里面的数据 //获取字符串类型 String value = jedis.get("name"); //获取list类型 List<String> myList2 = jedis.lrange("myList2",0,-1); //输出 System.out.println("name="+value); System.out.println("myList2:"+ myList2); //6.关闭连接 jedis.close(); }
jedis连接池工具类
public class JedisUtil { //连接池对象 private static JedisPool jedisPool; static{ //加载解析配置文件,ResourceBundle专门用于解析properties文件的, //可以根据文件名字,自动加载properties文件 //redis.properties文件放在src目录下(类路径下面) ResourceBundle resourceBundle = ResourceBundle.getBundle("redis"); //获取配置文件数据 int maxTotal = Integer.parseInt(resourceBundle.getString("maxTotal")); int maxIdle = Integer.parseInt(resourceBundle.getString("maxIdle")); int maxWaitMillis = Integer.parseInt(resourceBundle.getString("maxWaitMillis")); String host = resourceBundle.getString("host"); int port = Integer.parseInt(resourceBundle.getString("port")); //初始化连接池配置对象 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(maxTotal);//最大连接数 config.setMaxIdle(maxIdle);//最大空闲连接 config.setMaxWaitMillis(maxWaitMillis);//最大等待时间,毫秒 // 初始化连接池对象 jedisPool = new JedisPool(config,host,port); } /** * 获取一个jedis连接 * @return Jedis */ public static Jedis getJedis(){ return jedisPool.getResource(); } }
#最大连接数 maxTotal=50 #最大空闲连接 maxIdle=5 #最大等待时间,毫秒 maxWaitMillis=30000 #redis服务器的地址ip host=localhost #redis服务器的端口号 port=6379