• Redis学习记录


    键值数据库 key value
    NoSql

    第一章: 差异
    #1 structured 结构化
    约束 primary unique unsigned
    #2 relational 关联的
    #3 SQL查询
    例 select id, name, age from tb_user where id=1
    redis get user:1
    mongoDB db.users.find({_id: 1})
    elasticsearch GET http://localhost:9200/users/1
    #4 事务 ACID 基本一致 无事务
    键值类型 Redis 文档类型 MongoDB 列类型 HBase Graph类型 Neo4j
    存储方式 磁盘 内存
    扩展性 垂直 水平
    Remote Dictionary Server 远程词典服务器 基于内存的键值型NoSQL数据库
    特征:
    键值key-value型 value支持多种不同数据结构,功能丰富
    单线程,每个命令具备原子性 低延迟 速度快 基于内存,IO多路复用
    -支持数据持久化
    -支持主从集群,分片集群
    -支持多语言客户端

    安装Redis依赖 redius是基于C语言编写 需要安装Redis所需要的gcc依赖:
    yum install -y gcc tcl
    解压: tar -zxvf redis-6.2.6.tar.gz
    进入redis目录: cd redis-6.2.6
    运行编辑命令: make && make install 编译 安装
    内容: redis-cli 命令行客户端 redis-server
    任意目录 redis-server 端口 6379
    –默认启动方式
    –指定配置启动 流程: 配置文件备份 cp redis.conf redis.conf.bck
    修改redis.conf文件配置
    bind 0.0.0.0 任意ip地址可以访问
    #守护进程,修改为yes后即可后台运行 daemonize yes
    #密码,设置后访问redis必须输入密码 requirepass xxxxx
    其他常见配置 #监听端口 port
    #工作目录 dir
    #数据库数量 databases 默认有16个库,编号0-15
    #能够使用的最大内存 maxmemory 512mb
    #日志文件 默认为空 不记录日志 logfile “redis.log”
    启动 redis-server redis.conf
    —开机自启

    redis客户端
    1 命令行客户端
    使用方式: redis-cli [options][commonds]
    常见options -h IP地址 -p 端口 -a 访问密码
    操作命令commonds ping 与redis服务端做心跳测试,服务端正常会返回pong
    set name xxx
    get name
    SELECT 0 0号库

    2 图形化客户端

    3 编程客户端

    redis常见命令
    数据结构介绍 key-value
    key一般是string类型
    value多类型 string hash list set sortedset geo bitmap hyperlog
    redis官网 commands 分组
    命令行 help help @

    redis通用命令 keys组下 @generic
    KEYS: 查看符合模板的所有key(通配符) 例 KEYS * KEYS a* 以a开头
    DEL: 删除一个指定的KEY
    MSET: 批量插入
    EXISTS: 判断key是否存在
    EXPIRE: 给key设置有效期 有效期到期key被自动删除 EXPIRE key seconds
    TTL: 查看KEY的剩余有效期

    String类型 底层都是字节数组形式存储,编码方式不同。
    SET GET MSET MGET INCR INCRBY 自增,自增指定步长 SETNX (前提key不存在 否则不执行)
    Redis的key允许多个单词形成层级结构,多个单词用’:'隔开,
    例: 项目名:业务名:类型:id

    hash类型 散列 value是无序字典,类似java中的hashmap结构
    常见命令 前缀加H field

    List类型 双向链表结构 支持正向检索 反向检索

    java客户端
    Jedis

    1. 引入依赖

      redis.clients
      jedis
      3.7.0
    2. 建立连接
      private Jedis jedis;
      @BeforeEach
      void setUp(){
      //建立连接
      jedis = new Jedis(“xxx”, xxx);
      jedis.auth(“password”); //密码
      jedis.select(0);
      }

    Jedis本身线程不安全 频繁创建和销毁会有性能损耗 推荐使用连接池
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    jedisPoolConfig.setMaxTotal(); //最大连接
    jedisPoolConfig.setMaxIdle(); //最大空闲连接
    jedisPoolConfig.setMaxIdle(); //最小空闲连接
    jedisPoolConfig.setMaxWaitMillis(); //设置最长等待时间
    jedisPool = new JedisPool(jedisPoolConfig, xxx, xxx, timeout, password)

    public static Jedis getJedis(){
    return jedisPool.getResource();
    }

  • 相关阅读:
    【填坑指南】PHP8报:Unable to load dynamic library ‘zip.so’ 错误
    01.java课复习
    漏洞复现--企望制造ERP系统 RCE
    Java抽象类(abstract)
    3D场景上的人体生成器【附有源码】
    ubuntu nginx改时区
    Ansible FIle模块,使用Ansible File模块进行文件管理
    java知识3-----核心2-面向对象高级 续1--对象多态性
    使用MVVM Swift UIKit RxSwift 写一个SpaceX 发射计划APP
    如何对非线性【SVM】进行三维可视化
  • 原文地址:https://blog.csdn.net/qq_35076836/article/details/126240538