Live2D

redis

redis(Remote Dictionary Server)--结构化数据库

  1. nosql

    • nosql = not only sql
    • 泛指非关系型数据库,
    • 特点
      • 方便扩展(数据之间没有关系,很好扩展)
      • 大数据高性能(一秒读11万,写8万。nosql的缓存级别是细粒级的缓存,性能比较高)
      • 数据类型是多样性的(不需要事先设计数据库。随取随用。)
      • 传统RDBMS和NoSQL
        • 传统的RDBMS
          • 结构化组织
          • sql
          • 数据和关系都存在单独的表中
          • 严格的一致性
          • 基础的事务
        • NoSQL
          • 不仅仅是数据
          • 没有固定的查询语言
          • 键值对存储,列存储,文档存储,图形数据库
          • 保证最终一致性
          • CAP定理和BASE (异地多活)
          • 高性能,高可用,高可扩展性
      • 大数据时代的3V+3高
        • 海量Volume
        • 多样Variety
        • 实时Velocity
        • 高并发
        • 高可扩
        • 高性能
  2. nosql的四大分类

    • kv键值对:redis、redis+memecache
    • 文档型数据库:mongoDB(主要处理大量的文档,,是nosql中功能最丰富,最像关系型数据库的)
    • 列存储数据库
    • 图关系数据库(不是存图片的,是存储关系的,比如朋友圈社交网络)
  3. redis能干吗?

    • 内存存储、持久化、内存中是断电既失,所以持久化很重要
    • 效率高,可用于高速缓存
    • 发布订阅系统
    • 地图信息分析
    • 计时器、计数器
    • ...
    • 特性
      • 多样的数据类型
      • 持久化
      • 集群
      • 事务
      • ...
  4. windos安装使用Redis

  5. Linux 安装使用redis

    • 解压缩保存安装包到/opt
    • 安装环境 yum install gcc-c++
    • 执行 make
    • 执行 make install
    • 进入 /usr/local/bin
    • 创建lixconfig mkdir lixconfig,拷贝一份配置文件 cp /opt/redis.6.2.5/redis.conf lixconfig
    • vim redis.conf
    • 修改daemonize no 为 daemonize yes
    • 启动 redis-server lixconfig/redis.conf
    • 测试连接:redis-cli -h 主机号 -p 6379
    • ping
    • 小功告成
    • 压力测试
      • redis-benchmark -h localhost -p 6379 -c 100 -n 10000
    • redis 是基于内存的单线程操作。
  6. 常用命令

    • set:set name lix 设置一个key,value

    • get:get name 获取key为name的value(lix)

    • strlen :字符串的长度

    • select 3:进入第四个数据库(默认有17个数据库【select 16】)

    • flushdb:清空当前数据库的所有数据

    • flushall:清空所有数据库的所有数据

    • move key 1:移动当前key到1数据库中

    • expire key second: 设置超时时间,超时后清除key,value

    • setrange:设置指定位置开始的字符串

    • getrange:获取指定位置的字符串(getrange name 0 -1)

    • keys *:查看所有的key

    • type key:查看当前key 的类型

    • exists key :判断当前key是否存在,存在则返回1

    • incr :自增1

    • decr:自减1

    • incrby 100:增加100步长(自增100次1)

    • setex(set expire ):设置超时时间

    • setnx(set if not exists):如果存在,返回0设置失败,如果不存在,返回1设置成功

    • mset:设置多个key 的值

    • mget:获取多个key的值

    • mset: user:1:name lix user:1:age 22 设置对象user的值

    • getset key value:先获取key中的value,再设置value的值

    • append key value: 再key的值后追加value 字符串,如果key不存在,就相当于set key value

  7. list(先进后出)

    • lpush list one:给list列插入one到尾部
    • rpush list two:给list列插入two到头部
    • lrange list 0 -1:查看
    • lpop:移除最尾部的一个元素
    • rpop:移除头
    • lindex:获取指定下标的值
    • llen list:返回list列的长度
    • lrem list 2 one:移除两个one
    • ltrim list 1 2:截取1-2 的value,其余的被删除
    • rpoplpush list1 list2:移除尾部元素并移动到新创建的list2中
    • lset list index value:指定位置的值替换为新值
    • linsert:插入
  8. set(无序不重复集合)

    • sadd myset "hello":添加
    • smembers myset :查看
    • sismember myset hello:检查是否存在
    • scard myset :获取set集合中的元素个数
    • srem myset hello:移除指定的元素
    • srandmember myset:随机抽
    • srandmember myset 2:随机抽指定个数的元素
    • spop myset:随机删除元素
    • smove myset myset2 lix:移动指定的元素
posted @ 2021-09-07 15:38  六爻呈乾  阅读(63)  评论(0)    收藏  举报