zoukankan      html  css  js  c++  java
  • 回顾Redis基础

    长时间不用就忘了,工作用到了回顾总结记录一下redis命令及操作

     一:redis的五种类型

    1. String:字符串,可以存在String、Integer、Float型的数据,甚至是二进制数据,一个字符串最大容量是512M
    2. List: 字符串List,底层实现上不是数组,而是链表,也就是说头部和尾部插入一个新元素,其时间复杂度是常数级别的;其弊端是:元素的定位比数组慢
    3. Set: 字符串Set无序不可重复,是通过HashTable实现的
    4. Hash: 按Hash方式来存放字符串
    5. ZSet: 字符串set有序且不可重复,根据Score来排序。底层使用散列表和跳跃表来实现,所以读取中间部分的数据也很快

    二: redis多数据库

    • Redis每个数据库对外都是0开始递增的数字来命名,默认16个数据库,默认使用0号数据库,可以使用 select+数字 来选择数据库
    • 在linux目录/usr/local/bin下执行命令: ./redis-cli 连接到当前的redis,然后就可以用select命令来切换数据库了
    • 本地的话双击安装目录下的redis-cli.exe即可
    • Redis不支持自定义数据库名字,默认是: 0、1、2、3、4 ... 15
    • Redis不支持为每个数据库设置不同的访问密码

      1. 可以使用命令:Dbsize 查看当前数据库的key的数量

       2.可以使用命令:move key 目的数据库编号,在多个数据库间移动数据

       比如把0数据库里的test 移动到1号数据库

       3.可以使用命令:flushdb,清除某个数据库的数据

      比如清除1号数据库

       4.多个数据库之间并不是完全独立的,可以使用命令:FlushAll,清空redis全部的数据 一般不要用

    三:redis的key的操做

    • Redis的key只能是字符串类型
    • 对Redis的keys的常用操作命令
    keys:获取符合规则的键名列表
    
          格式是keys pattern, pattern支持glob风格通配符格式:
    
            ?  匹配一个字符
    
            *   匹配任意字符
    
            []      匹配中括号内的任一字符,可以用 - 来表示范围
    
            x     匹配字符x,用于转义符号

    我是选择了1库 所以使用select 1   

      keys *  相当于查所有的key

     

    1. exists:判断键值是否存在,格式是:exists key

       2.del: 删除key,格式是:del key

       3.type: 获取键值的数据类型,格式是:type key

       4.rename:改名,格式是: rename oldKey newKey

     

       5.renamenx: 如果不存在则改名,格式是:renamex oldKey newKey,(这里不存在是指,newKey不存在redis中

    四:使用代码对redis的key的操做一遍

    /**
     * @ description: 使用redis api 对key的操作
     * @ author: YW
     * @ time: 2020/4/20 19:10
     */
    public class RedisKeyExample {
        public static void main(String[] args) {
            Jedis jedis = new Jedis("127.0.0.1", 6379);
    
            // 查询所有的key   相当于 keys *
            Set<String> keys = jedis.keys("*");
            for (String key : keys) {
                System.out.println(key);
            }
            System.out.println("keys * ===============================");
            // 匹配一个字符 相当于keys lis?
            Set<String> keys1 = jedis.keys("lis?");
            for (String key : keys1) {
                System.out.println(key);
            }
            System.out.println("keys lis? ===============================");
    
            // 判断是否存在
            Boolean existsKey = jedis.exists("t1");
            System.out.println("existsKey = " + existsKey);
    
            // 删除t1
            Long delK1 = jedis.del("t1");
            System.out.println("delK1 = " + delK1);
    
            // 查看key的类型
            String typeK2 = jedis.type("t1");
            System.out.println("typek2 = " + typeK2);
    
            // 直接改名
            String renameK = jedis.rename("t1", "t22");
            System.out.println("renameK= " + renameK);
    
            // 不存在才改名
            Long renamenxt = jedis.renamenx("t22", "t66");
            System.out.println("renamenxt = " + renamenxt);
    
        }
    }
  • 相关阅读:
    面向对象编程思想-组合模式
    原生JS:Array对象详解
    一些XMLHttpRequest的例子代码
    详细解读XMLHttpRequest(一)同步请求和异步请求
    深入理解:JavaScript原型与继承
    轻松掌握:JavaScript状态模式
    轻松掌握:JavaScript装饰者模式
    轻松掌握:JavaScript享元模式
    轻松掌握:JavaScript模板方法模式
    回调函数的意义以及python实现
  • 原文地址:https://www.cnblogs.com/YuanWeiBlogger/p/12740345.html
Copyright © 2011-2022 走看看