美文网首页
Redis入门(特点 应用 数据结构 函数)

Redis入门(特点 应用 数据结构 函数)

作者: 黄靠谱 | 来源:发表于2019-02-09 15:15 被阅读33次

    Redis特点(C 实现的)

    • 内存存储,查询速度快,经常用作缓存服务器
    • 支持数据持久化,重启会加载持久化的数据,支持不同级别的数据持久化策略,所以可以当作数据库来用,有2种持久化方案。另外可以关闭持久化功能,当纯内存数据库用,提升性能。
    • 支持丰富数据类型,支持string,list,set,sorted set,hash
    • 支持事务,操作都是原子性
    • 支持Lua脚本
    • LRU的过期淘汰策略
    • 支持过期删除:按key设置过期时间,过期后将会自动删除
    • redis是单线程IO复用(读写排序等操作公用唯一的线程),事件驱动(文件事件和时间事件)
    • 除了存储还支持排序等聚合操作
    • 支持集群和高可用,cluster集群的话,支持在线扩容。Sentinel的话,支持Mster和Slave的监控和身份切换
    • 支持sub/pub

    Redis的应用

    1. 分布式环境的计数器(或者是浏览量统计工具,利用incr函数的原子性来实现)(原子性)
    2. 注册中心,在Dubbo中可以用
    3. 分布式锁,悲观锁、乐观锁、Redlock等(原子性)
    4. 消息队列(Pub/Sub + Redis List)
    5. 高性能数据库,因为加入的数据会被持久化,所以具备数据库的功能
    6. 缓存服务器,内存查找(内存存储)

    Redis的数据结构

    https://redis.io/topics/data-types-intro
    完整的介绍,函数太多了
    https://www.cnblogs.com/Cwj-XFH/p/6938799.html
    string,list,set,sorted set,hash

    1. String:不是一般的String,支持字符串、整数、浮点数都是Binary String在Redis中,key为 整数的话,可以执行 INCR、INCRBY、DECR、DECRBY等函数
    2. List:LinkedList,支持在首位两端插入和移除操作,也支持基于Index的遍历查询,lpush(往head插入) 、rpush(往tail插入)、lpop、rpop 、lrange key 0 -1、LINDEX
    3. Redis Sets:无序的String 去重集合, sadd key value 添加、smembers key 遍历查看、sismember key 精确查询
    4. Sorted Sets:去重功能+ Score功能,Score可以重复, key的话有去重的功能,默认存储最后一次set的值
    5. Hash

    Redis支持的函数

    1. set 、get
    2. mset 、mget:批量set 批量get
    3. GETSET 原子操作,返回之前的值,没有设置就返回nil
    4. exists 存在返回1 不存在返回0
    5. expire key 5 (单位是秒)
    6. zadd
    mset a 10 b 20 c 30
    mget a b c
    
    # Sorted Set
    ZADD runoobkey 1 redis
    ZADD runoobkey 2 mongodb
    ZADD runoobkey 3 mysql
    ZRANGE runoobkey 0 10 WITHSCORES
    

    参考资料

    redis 5种数据结构和相关命令
    https://www.cnblogs.com/Cwj-XFH/p/6938799.html

    好的博客,待刷一下
    https://blog.csdn.net/zhiguozhu/article/details/50517527

    要看完 redis和memcached的区别
    http://blog.jobbole.com/101496/

    redis的数据结构超级详细
    https://www.cnblogs.com/qwangxiao/p/8921171.html

    相关文章

      网友评论

          本文标题:Redis入门(特点 应用 数据结构 函数)

          本文链接:https://www.haomeiwen.com/subject/ymtzsqtx.html