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);
    
        }
    }
  • 相关阅读:
    C#中 @ 的用法
    ASP.NET页面间传值
    ASP.NET中常用的文件上传下载方法
    把图片转换为字符
    把图片转换为字符
    JavaScript 时间延迟
    Using WSDLs in UCM 11g like you did in 10g
    The Definitive Guide to Stellent Content Server Development
    解决RedHat AS5 RPM安装包依赖问题
    在64位Windows 7上安装Oracle UCM 10gR3
  • 原文地址:https://www.cnblogs.com/YuanWeiBlogger/p/12740345.html
Copyright © 2011-2022 走看看