zoukankan      html  css  js  c++  java
  • 基于redis 内存数据库简单使用

    ecplise中使用内存数据的客端户,前提要准备要下载两个jar

    commons-pool2-2.0.jar 

    jedis-2.4.2.jar 

    前提准备做好了,那我们就开启redis的服务,打开一个命令窗体输入例如以下命令:redis-server  redis-server  redis根目 edis.conf

     

    server已经开启了。注意端号是6377

    2.eclipse 创建一个项目,把redist须要的包导入项目中

     

    3.写一个Jedis工具类

    public class JedisUtil {

    private static  String  HOST="127.0.0.1";            //本机地址

    private static  Integer PORT=6379;                   //服务port

    private static  JedisPoolConfig config;              //连接池的配置对象

    private static  JedisPool  pool;                     //连接池对象

    static{

             config = new JedisPoolConfig();

             config.setMaxIdle(1024*10);                     //设置内存大小

             pool = new JedisPool(config,HOST);

    }

    /**

     * 

     * @return  从连接池里获取一个Jedis对象

     */

    public static  Jedis  getPoolJedis(){

    return  pool.getResource();

    }

    /**

     * 手动把Jedis对象。回放到连接池里

     */

    public static void returnPoolJedis(Jedis jedis){

    pool.returnResource(jedis);

    }

    /**

     * @return  直接创建一个Jedis连接

     */

    public static Jedis getJedis(){

    return new Jedis(HOSTPORT);

    }

    }

    4.写一个client类操作jedis

    public class Client {

    public static void main(String[] args) {

    //simpleSet();

    mSet();

    }

    private static void mSet() {

    //注意 假设使用 JedisUtil.getJedis(); 是直接创建一个jredis对象,所以不受连接池管理。所以不能回放到连接池里

    Jedis jedis = JedisUtil.getPoolJedis();

    //设置值多个值

    jedis.mset("userName","user1","pwd","123");

    //取值

    List<String> list = jedis.mget("userName","pwd");

    for (String string : list) {

    System.out.println(string);

    }

    jedis.flushDB();

    JedisUtil.returnPoolJedis(jedis);

    }

    private static void simpleSet() {

    Jedis jedis = JedisUtil.getPoolJedis();

    //设置值

    jedis.set("userName""user1");

    //取值

    System.out.println("userName:"+jedis.get("userName"));

    //清空内存数据库

    jedis.flushDB();

    JedisUtil.returnPoolJedis(jedis);

    }

     后补集合的简单操作

    	/**
    	 * hash 操作
    	 */
    	private static void hashSet(){
    		Jedis jedis = JedisUtil.getPoolJedis();
    		//set,设置指定的哈希表里的某个域的值
    		jedis.hset("key1", "user1", "123");
    		jedis.hset("key2", "user2", "456");
    		jedis.hset("key3", "user3", "789");
    		//get,取出指定哈希表里的某个域的值
    		System.out.println(jedis.hget("key1", "user1"));
    	}
    	
    	/**
    	 * hash map操作
    	 */
    	public static void mapSet(){
    		Jedis jedis = JedisUtil.getPoolJedis();
    		Map<String,String> map=new HashMap<String,String>();
    		map.put("user1", "123");
    		map.put("user2", "456");
    		map.put("user3", "789");
    		//将一个map集合的键/值,设置到哈希表里。
    		jedis.hmset("map", map);
    	    //取出哈希表域的值,也就map的key
    		//System.out.println(jedis.hmget("map", "user3"));
    		//取出哈希表多个域的值
    		List<String> list = jedis.hmget("map", "user1","user2","user3");
    		for (String string : list) {
    			System.out.println("值:"+string);
    		}
    	}
    	
    	
    	/**
    	 * 返回哈希表key中,全部的域与值
    	 */
    	public static void getAll(){
    		Jedis jedis = JedisUtil.getPoolJedis();
    		Map<String,String> map = jedis.hgetAll("map");
    		Set<String> keySet = map.keySet();
    		Iterator<String> i = keySet.iterator();
    		while(i.hasNext()){
    			System.out.println(map.get(i.next()));
    		}
    		//jedis.del(key) key field [field ...]删除哈希表key中的一个或多个指定域。 
    		//jedis.hlen(key) key 返回哈希表key中域的数量。

    //jedis.hexists(key, field) key field查看哈希表key中,给定域field是否存在。 //jedis.hincrByFloat(key, field, increment) key field increment为哈希表key中的域field的值加上增量increment。

    //jedis.hkeys(key) key返回哈希表key中的全部域。

    //jedis.hvals(key) key返回哈希表key中的全部值。 } /** * list操作 */ public static void list(){ Jedis jedis = JedisUtil.getPoolJedis(); //设置值,是以栈的存储方式,先进后出。jedis.lpush(key, strings) strings能够是设置多个值。 jedis.lpush("list","index1"); jedis.lpush("list","index2"); jedis.lpush("list","index3"); //取值,依据開始下标与结束下标的范围取值 List<String> list = jedis.lrange("list", 0,2); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } //jedis.llen(key) key 返回列表key的长度 //jedis.lrem(key, count, value) 依据參数count的值,移除列表中与參数value相等的值 } /** * set操作 */ public static void set(){ Jedis jedis = JedisUtil.getPoolJedis(); //设置值 jedis.sadd("set", "s1","s2","s3","s4"); //移除某个元素,能够移出一个。也能够移出多个。 jedis.srem("set", "s1","s2"); //获出全部的元素 Set<String> set = jedis.smembers("set"); Iterator<String> i = set.iterator(); while(i.hasNext()) System.out.println(i.next()); }




    }

    如今能够在redistclient对数据进行取值

     打开一个命令窗体,输入命令 redis-cli 开启client,原后进行赋值

     

  • 相关阅读:
    北京燃气IC卡充值笔记
    随机分析、随机控制等科目在量化投资、计算金融方向有哪些应用?
    量化交易平台大全
    Doctor of Philosophy in Computational and Mathematical Engineering
    Institute for Computational and Mathematical Engineering
    Requirements for the Master of Science in Computational and Mathematical Engineering
    MSc in Mathematical and Computational Finance
    万字长文:详解多智能体强化学习的基础和应用
    数据处理思想和程序架构: 使用Mbedtls包中的SSL,和服务器进行网络加密通信
    31-STM32+W5500+AIR202/302基本控制篇-功能优化-W5500移植mbedtls库以SSL方式连接MQTT服务器(单向忽略认证)
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5210526.html
Copyright © 2011-2022 走看看