• Redis笔记


    数据类型:String   hash   list     无序set  有序set

    常用命令:

    String

    set a b

    get a

    getset 先获取旧值再设置新值

    del a

    一个键最多能存512MB

    Hash

    hset hash1 username ym

    hget hash1 username

    hmset hash2 username ym password ym age 18

    hgetall hash2

    hincrby hash1 age 20 某一字段增加某数值 仅对正确数据类型有效

    hexists hash1 username

    hlen hash1

    hkeys hash1  展示该hash所有的key

    hvals hash1 展示该hash左右的value

    List

    lpush lpush list1 1 2 3 4   结果 list1 [4,3,2,1]

    rpush rpush list2 1 2 3 4 结果 list2 [1,2,3,4]

    lrange list2 0 -1    0代表list的第一个元素   -1 代表最后一个元素   -2 代表倒数第二个元素

    linsert list2 before|after  b bbb 向b的前面或后面添加bbb

    rpoplpush list1 list2 将list1的最右侧元素挪到list2作为最左侧元素  适用于多个执行队列

    rpoplpush list1 list1  将list1的最右侧元素挪到list1的最左侧  适用于单个循环队列

    无序Set  无序、不重复。     涉及两个大数据的交集,并集,差集的计算

    sadd set1 a b c d

    srem set1 b c

    smembers set1 取出set1中所有元素

    sismember set1 b 判断b在set1中是否存在 存在返回1  不存在返回0

    set1 [a c d]

    set2 [1 2 3 a b c e]

    差集:查看哪些元素属于set1不属于set2

    sdiff set1 set2   结果 d     set1与set2 顺序有限制

    交集:查看哪些元素既属于set1也属于set2

    sinter set1 set2 结果 a c  set1与set2顺序无限制

    并集:set1与set2的并集

    sunion set1 set2  结果 1 2 3 a b c d e   set1与set2顺序无限制  去除了重复部分

    将求出的交集、并集、差集存储到另外一个set集合中

    sdiffstore set3 set1 set2  顺序有限制  sdiffstore紧跟的为存储结果集合

     

    scard set1  结果3  返回set中结果个数

    srandmember set1 随机返回一个set1中 元素     抽奖!!

    有序Set  有序、不重复。   排行榜!

    zadd zet 100 xiaoming 200 xiaohong 300 xiaozhang   插入  默认升序排列

    zscore zet xiaohong   获取某元素的值  结果200

    zcard zet  

    zrem zet xiaohong xiaoming

    范围查询

    zrange zet 0 -1 

    zrange zet 0 -1  withscores 带分数 升序

    zrevrange zet 0 -1  withscores 带分数  降序  排行榜

    zremrangebyrank zet 0 1   按照排名删除前两名   按照索引删除

    zremrangebyscore zet 199 299  按照分数删除分数在199到299之间的元素  前后都是闭区间

    zrangebyscore zet 100 350 withscore limit 0 2           按照分数排序 展示100到250区间内从第1条开始展示2条

    zrevrangebyscore zet  650 100 withscores limit 0 1 降序的时候分数区间顺序也要倒着写

    zincrby zet 400 xiaohong 增加某元素值

    zcount zet 100 300  计算100到300元素个数

    zrank zet xiaohong  查询元素下标 结果 2

    zrevrank zet xiaohong 倒序查询

    通用命令

    通配符  *表示任意一个或多个字符    ?表示任意一个字符

    匹配任意长度为4位的key

    keys ????

    匹配key中包含set的key

    keys *set*

    keys *  展示redis中所有的key

    del 删除

    exists 是否存在

    rename为key进行重命名

    rename 旧名字 新名字

    type key  获取key的值类型  有序set返回zset

    设置key的生存时间 单位秒

    若某个key过期了  那么redis就会将其删除

    默认为永久存在

    expire key 30     设置key生存时间30s

    ttl key 查询key的剩余生存时间   若返回-2 则为过期   若返回-1 则为永久存在

    消息订阅与发布

    发布消息

    publish ym1 aaa

    订阅单个频道

    subscribe      如subscribe  ym1

    批量订阅多个频道

    psubscribe  如psubscribe ym*

    Redis多数据库

    Redis默认有16个数据库  分别为0 1 2 3......15

    在redis上所做的所有数据操作,默认都是在0号数据库上面操作

    数据库之间不能共享键值对

    切换数据库  select 数据库名    如select 1

    把某个键值对进行数据库移植     move 移植的键 新数据库名   如move password 1

    清空当前数据库数据:flushdb

    清空服务器数据:flushall

    Redis事务-批量操作

    目的:进行redis语句批量化执行

    Redis执行事务的时候,不对外服务。

    multi  标记事务的开始   其后执行的命令都会被存入任务队列在执行exec按顺序执行

    exec 执行批量化  执行后就立即退出multi

    diacard 不执行批量化  执行后就立即退出multi

    Redis持久化

    默认情况下:Redis所有的增删改 数据都是在内存中进行操作  断电后 内存中的数据会丢失

    持久化策略:

    RDB:默认持久化策略

    RDB相当于照快照,保存的是一种状态

    优点:

    1. 快照保存数据速度极快,还原数据速度极快
    2. 适用于灾难备份

    缺点:

    1. 小内存机器不适合使用,RDB机制符合要求就会照快照(随时随地启动,会占用一部分系统资源,突然占用,很可能内存不足直接宕机,宕机后服务器关闭---非正常关闭,内存中数据丢失)  服务器关闭---照快照     key满足一定要求---照快照

    RDB何时进行快照

    1. 服务器正常关闭
    2. key满足一定条件

     save 900 1            每900秒(15分钟)至少有一个key发生变化 则照快照

     save 300 10        每300秒(5分钟)至少有10个key发生变化 则照快照

     save 60 10000      每60秒(1分钟)至少有10000个key发生变化 则照快照

    例如1:12:00-12:15 一个key发生变化,在12:15照快照

        12:00-12:15 任何key没有发生变化,在12:15不照快照

    例如2:12:00-12:05 11个key发生变化  在12:05照快照   在12:15照快照

        12:00-12:05 9个key发生变化  在12:05不照快照   在12:15照快照

    例如2:12:00-12:01 11000个key发生变化  在12:01照快照   在12:05照快照   在12:15照快照

        12:00-12:01 9000个key发生变化  在12:01不照快照   在12:05照快照  在12:15照快照

    AOF:使用日志功能保存数据操作  默认AOF关闭

    适用于内存比较小的计算机

    三种策略:

    每秒同步:每秒进行一次AOF保存数据   安全性低,节省系统资源

    每修改同步:只要有key变化,就进行AOF保存数据   比较安全,但是浪费效率

    不同步(默认)   不安全

    AOF操作:只会保存导致key变化的语句(增删改)

    AOF配置:

    everysec(默认):每秒同步

    always:每修改同步

    no:不同步

    编辑redis.conf

     

    优点:

    1. 持续性占用极少量的内存资源

    缺点:

    1. 日志文件会特别大,不适用于灾难恢复
    2. 恢复效率远远低于RDB

     

  • 相关阅读:
    信息竞赛日志
    Lesson0423
    考试总结
    2020省队选拔前(4.13-5.31)计划
    mvcc浅析
    浅谈cgi和fastcgi
    mysql事务
    mysql慢sql优化总结
    简述缓存击穿 / 缓存雪崩 / 缓存穿透 以及各自的解决方案
    PHP的异常处理机制浅析
  • 原文地址:https://www.cnblogs.com/yuming2018/p/11510713.html
Copyright © 2020-2023  润新知