zoukankan      html  css  js  c++  java
  • redis学习基础(二)

    redis数据备份与恢复

    备份:save(该命令将在 redis 安装目录中创建dump.rdb文件)

    创建 redis 备份文件也可以使用命令 bgsave,该命令在后台执行。

    恢复:将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可

    127.0.0.1:6379> config get dir
    1) "dir"
    2) "D:\flink\Redis-x64-3.0.504"

    dbsize命令:统计数据库中的数据个数

    redis安全

    默认情况下redis免密登陆,无特殊情况,redis无需设置密码。

    127.0.0.1:6379> config get requirepass         查看当前密码
    1) "requirepass"
    2) ""
    127.0.0.1:6379> config set requirepass "root"      设置密码
    OK
    127.0.0.1:6379> config get requirepass
    (error) NOAUTH Authentication required.
    127.0.0.1:6379> auth root                          密码登陆
    OK
    127.0.0.1:6379> config get requirepass             操作数据库
    1) "requirepass"
    2) "root"
    127.0.0.1:6379> get requirepass
    (nil)
    127.0.0.1:6379> config set requirepass ""
    OK
    127.0.0.1:6379> get name
    "8001"

    Java使用redis,需借助jedis驱动进行。

    连接redis服务:

    
    import redis.clients.jedis.Jedis;
     
    public class RedisJava {
        public static void main(String[] args) {
            //连接本地的 Redis 服务
            Jedis jedis = new Jedis("localhost");
            System.out.println("连接成功");
            //查看服务是否运行
            System.out.println("服务正在运行: "+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("连接成功");
            //设置 redis 字符串数据
            jedis.set("runoobkey", "www.runoob.com");
            // 获取存储的数据并输出
            System.out.println("redis 存储的字符串为: "+ jedis.get("runoobkey"));
        }
    }
    

    redis操作列表实例:

    
    import java.util.List;
    import redis.clients.jedis.Jedis;
     
    public class RedisListJava {
        public static void main(String[] args) {
            //连接本地的 Redis 服务
            Jedis jedis = new Jedis("localhost");
            System.out.println("连接成功");
            //存储数据到列表中
            jedis.lpush("site-list", "Runoob");
            jedis.lpush("site-list", "Google");
            jedis.lpush("site-list", "Taobao");
            // 获取存储的数据并输出
            List<String> list = jedis.lrange("site-list", 0 ,2);
            for(int i=0; i<list.size(); i++) {
                System.out.println("列表项为: "+list.get(i));
            }
        }

    redis操作keys实例:

    
    import java.util.Iterator;
    import java.util.Set;
    import redis.clients.jedis.Jedis;
     
    public class RedisKeyJava {
        public static void main(String[] args) {
            //连接本地的 Redis 服务
            Jedis jedis = new Jedis("localhost");
            System.out.println("连接成功");
     
            // 获取数据并输出
            Set<String> keys = jedis.keys("*"); 
            Iterator<String> it=keys.iterator() ;   
            while(it.hasNext()){   
                String key = it.next();   
                System.out.println(key);   
            }
        }
    }
    

    redis使用数据库连接池实现数据访问实例

    public class RedisUtil {
    
        //服务器IP地址
        private static String ADDR = "192.168.41.65";
        //端口
        private static int PORT = 6379;
        //密码
        private static String AUTH = "123456";
        //连接实例的最大连接数
        private static int MAX_ACTIVE = 1024;
        //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
        private static int MAX_IDLE = 200;
        //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException
        private static int MAX_WAIT = 10000;
        //连接超时的时间  
        private static int TIMEOUT = 10000;
        // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
        private static boolean TEST_ON_BORROW = true;
    
        private static JedisPool jedisPool = null;
        //数据库模式是16个数据库 0~15 
        public static final int DEFAULT_DATABASE = 0;
        /**
         * 初始化Redis连接池
         */
    
        static {
    
            try {
    
                JedisPoolConfig config = new JedisPoolConfig();
                config.setMaxTotal(MAX_ACTIVE);
                config.setMaxIdle(MAX_IDLE);
                config.setMaxWaitMillis(MAX_WAIT);
                config.setTestOnBorrow(TEST_ON_BORROW);
                jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT,AUTH,DEFAULT_DATABASE);
    
            } catch (Exception e) {
    
                e.printStackTrace();
            }
    
        }
    
        /**
         * 获取Jedis实例
         */
    
        public synchronized static Jedis getJedis() {
    
            try {
    
                if (jedisPool != null) {
                    Jedis resource = jedisPool.getResource();
                    System.out.println("redis--服务正在运行: "+resource.ping());
                    return resource;
                } else {
                    return null;
                }
    
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
    
        }
    
        /***
         * 
         * 释放资源
         */
        
        public static void returnResource(final Jedis jedis) {
                if(jedis != null) {
                    jedisPool.returnResource(jedis);
                }
            
        }
    }
    
    /*使用 JedisPoolConfig 需要导入 Commons Pool 包,下载地址 http://commons.apache.org/proper/commons-pool/download_pool.cgi。
    */

  • 相关阅读:
    资源链接
    python pip下载速度慢的解决方法
    淘宝 NPM 镜像
    python学习链接
    Linux升级python3之后yum不能正常使用解决方法一:重新配置yum源
    rand和srand的用法
    static与volatile的用法
    CentOS 7
    C++类(Class)总结
    简单的linux命令
  • 原文地址:https://www.cnblogs.com/aasu/p/11775010.html
Copyright © 2011-2022 走看看