redis的基本存储结构的简单使用

最近看了redis的,对redis的存储结构有了个了解,它本身一个key-value形式的存储方式,不需要和数据库打交道,自己就是一个高性能的数据库。存储类型包括String、List、Set、Hash和有序集合五种结构方式。

在本机电脑上安装了redis服务,创建本地连接对几个基本存储结构做一些简单的使用。

一、安装redis服务

本地直接简单的安装了redis服务,在官网去下载对应你的版本,点击运行redis-server.exe,如图,表示服务已经启动。redis本身不能后台自动启动,需要手动启动服务操作。


二、测试连接

1、redis的配置信息

host=127.0.0.1
port=6379
pwd=123456
maxTotal=200
maxIdle=30
minIdle=10
maxWaitMillis=10000

2、获取配置信息,工具类装载配置文件

public class PropertiesUtils {
	
	private static Properties properties;
	
	static {
		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
		try {
			InputStream is = classLoader.getResourceAsStream("redis.properties");
			properties = new Properties();
			properties.load(is);
		} catch (Exception e) {
			try {
				throw new Exception("获取参数出错!", e);
			} catch (Exception e1) {
			}
		}
	}
	
	/**
	 * 获取配置文件中value
	 */
	public static String getProperty(String key) {
		return properties.getProperty(key);
	}
	
}
3、读取配置文件中的值并初始化连接池连接

private static JedisPool pool;

	static {
	String host = PropertiesUtils.getProperty("host");
	int port = Integer.valueOf(PropertiesUtils.getProperty("port"));//本机默认127.0.0.1
//	String password = PropertiesUtils.getProperty("pwd");//redis默认无密码
        JedisPoolConfig config = new JedisPoolConfig();
        //最大连接数
        config.setMaxTotal(Integer.valueOf(PropertiesUtils.getProperty("maxTotal")));
        //最大空闲连接数
        config.setMaxIdle(Integer.valueOf(PropertiesUtils.getProperty("maxIdle")));
        //最小空闲连接数
        config.setMinIdle(Integer.valueOf(PropertiesUtils.getProperty("minIdle")));
        //获取连接时最大等待的毫秒数
        config.setMaxWaitMillis(Integer.valueOf(PropertiesUtils.getProperty("maxWaitMillis")));
        config.setTestOnBorrow(true);
        config.setTestOnReturn(true);
        config.setTestWhileIdle(true);
        config.setTimeBetweenEvictionRunsMillis(30000);
        config.setNumTestsPerEvictionRun(10);
        config.setMinEvictableIdleTimeMillis(60000);
        
        pool = new JedisPool(config, host, port);
	}
	
	/**
	 * 获取连接
	 */
	public static Jedis getJedisConnection() {
		Jedis jedis = null;
		try {
			jedis = pool.getResource();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return jedis;
	}
4、连接操作,先启动redis服务

public static void main(String[] args) {
		Jedis jedis = JedisPoolUtils.getJedisConnection();
		System.out.println("连接成功!" + jedis.ping());
		
	}
控制台输出:连接成功!PONG

此时可以通过配置连接redis服务了。

三、存储结构的简单使用

1、String、List、Set、Hash四种的添加

/**
	 * List方式添加
	 * @param jedis
	 * @param key
	 * @param list
	 */
	public static void typeOfList(Jedis jedis, String key, List<String> list){
		if(list != null && list.size() > 0){
			for (String str : list) {
				jedis.lpush(key, str);
			}
		}
	}
	/**
	 * Set方式添加
	 * @param jedis
	 * @param key
	 * @param set
	 */
	public static void typeOfSet(Jedis jedis, String key, Set<String> set){
		List<String> list = new ArrayList<String>(set);
		if(list != null && list.size() > 0){
			for (String str : list) {
				jedis.sadd(key, str);
			}
		}
	}
	/**
	 * 字符串方式添加
	 * @param jedis
	 * @param key
	 * @param value
	 */
	public static void typeOfStr(Jedis jedis, String key, String value){
		jedis.set(key, value);
	}
	/**
	 * Hash方式
	 * @param jedis
	 * @param key
	 * @param map
	 */
	public static void typeOfHash(Jedis jedis, String key, Map<String, String> map){
		jedis.hmset(key, map);
	}
2、分别对各种结构进行赋值

//string方式
		JedisPoolUtils.typeOfStr(jedis, "key1", "value1");
		
		//set方式
		Set<String> set = new HashSet<String>();
		set.add("s1");
		set.add("s2");
		JedisPoolUtils.typeOfSet(jedis, "set1", set);
		
		//list方式
		List<String> list = new ArrayList<String>();
		list.add("l1");
		list.add("l2");
		JedisPoolUtils.typeOfList(jedis, "list1", list);
		
		//hash方式
		Map<String, String> map = new HashMap<String, String>();
		map.put("f1", "h1");
		map.put("f2", "h2");
		map.put("f3", "h3");
		JedisPoolUtils.typeOfHash(jedis, "hash1", map);
3、查看刚才做的存储的结果,采用命令行的方式展示,先打开命令窗口,如下连接上本机:

根据命令获取对应存储结构的value值,依次是String、List、Set、Hash四个的value,如下;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值