px之Redis见解(三)

java连接redis数据库#

开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。
为了使用redis,我们还必须在项目中添加redis的驱动包,这里使用jedis-2.9.0.jar

注意:要确保linux上redis的端口号没有被防火墙拦截,如拦截,需要设置防火墙放行:

vim  /etc/sysconfig/iptables

添加

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

重启防火墙

service iptables restart

1.Java连接redis数据库###

连接数据库代码如下:

package cn.sz.gl.test;
import redis.clients.jedis.Jedis;
public class Test01 {
	public static void main(String[] args) {
     //Jedis jedis = new Jedis("10.3.153.229",6379);
		Jedis jedis = new Jedis("10.3.153.229");
	//如果redis设置过密码,还需要在这里验证密码,如果没设就可以不用写这一行
		jedis.auth("123");
		System.out.println("连接成功");
		System.out.println("服务正在运行:"+jedis.ping());
		//防火墙关闭(或添加可访问的端口,具体不在此描述)systemctl stop firewalld.service
		//redis.conf配置文件中,注释掉bind 127.0.0.1
		//redis.conf配置文件中,protected-mode 修改为no(默认为yes)
	}
}

此时,如果连接成功,会在控制台看到如下描述:

> 连接成功
> 服务正在运行:PONG

2.Java操作各种不同类型数据###(连接池方式)

package cn.sz.gl.test;

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;

public class Test02 {

	public static void main(String[] args) {
     //获取连接池的配置对象
     JedisPoolConfig config = new JedisPoolConfig();
     //设置最大连接数
     config.setMaxTotal(30);
     //设置最大空闲连接数
     config.setMaxIdle(10);
     //获取连接池
     JedisPool jedisPool = new JedisPool(config,"10.3.153.229",6379);     
		//获取连接对象
     Jedis jedis = null;
     try{
         jedis = jedisPool.getResource();
		//存储字符串
			jedis.set("loginname", "zhangsan");
			System.out.println("存储的字符串为:"+jedis.get("loginname"));

		System.out.println("******************************************************");
		//存储列表
		//此时存放的如果有中文,在redis客户端通过./redis-cli直接登录时出现中文无法显示的情况,登录客户端命令可以改为:./redis-cli --raw
		jedis.lpush("subject", "语文","数学","英语");
		List<String> list = jedis.lrange("subject", 0, -1);
		System.out.println("迭代所有的列表:");
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		
		System.out.println("******************************************************");
		//散列表
		jedis.hset("user", "age", "20");
		String value = jedis.hget("user", "age");
		System.out.println("散列表取得结果:"+value);
		
		System.out.println("***********************************************");
		//集合
		jedis.sadd("book", "三国演义","水浒传");
		Set<String> set = jedis.smembers("book");
		Iterator<String> iter = set.iterator();
		while(iter.hasNext()){
			String str = iter.next();
			System.out.println(str);
		}
		
		System.out.println("*************************************************");
		//有序集合
		Map<String,Double> map = new HashMap<String,Double>();
		map.put("one", 1d);
		map.put("two", 2d);
		map.put("three", 3d);
		Long res = jedis.zadd("love", map);
		System.out.println("zadd结果:"+res);
		Set<String> love = jedis.zrange("love", 0, -1);
		Iterator<String> it = love.iterator();
		while(it.hasNext()){
			String str = it.next();
			System.out.println(str);
		}

		System.out.println("****************************************");
	//获取所有的数据,相当于在数据库中执行 keys * 的操作
		Set<String> keys = jedis.keys("*");
		Iterator<String> all = keys.iterator();
		while(all.hasNext()){
			String key = all.next();
			System.out.println(key);
		}
		
		System.out.println("*****************************************");
		System.out.println("book的类型:"+jedis.type("book"));//book的类型:set
		System.out.println("love的类型:"+jedis.type("love"));//love的类型:zset
	//loginname的类型:string
		System.out.println("loginname的类型:"+jedis.type("loginname"));
	//user的类型:hash
		System.out.println("user的类型:"+jedis.type("user"));
	//subject的类型:list
		System.out.println("subject的类型:"+jedis.type("subject"));
	}
     
 }catch(Exception e){
     
 }finally{
     if(jedis!=null){
         jedis.close();
     }
     if(jedisPool !=null){
         jedisPool.close();
     }
 }
}

你可能感兴趣的:(px之Redis见解(三))