黑马程序员技术交流社区

标题: 【杭州校区】系统学习Redis之Redis简介 [打印本页]

作者: 小江哥    时间: 2018-12-21 10:27
标题: 【杭州校区】系统学习Redis之Redis简介
Redis是什么
        开源
        基于键值的存储服务系统
        多种数据结构
        高性能、功能丰富
Redis的特征
        速度快:10w OPS
                数据存在哪里:内存(计算机存储的介质:Register>L1 Cache>L2 Cache>Main Memory>Local Disk>Remote Disk)
                        (每秒读写次数:千万级;随机读写延迟:80nm;访问宽带:5GB)
                什么语言写的:C语言(50000 line)
                线程模型:单线程
        持久化:RDB、AOF
                Redis所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。
        多种数据结构:Strings/Hash Tables/Linked Lists/Sets/Sorted Sets
                衍生数据结构:BitMaps:位图/HyperLogLog:超小内存唯一值计数/GEO:地理信息定位
        支持多种编辑语言:基于TCP的通信协议
                Java/PHP/Python/Ruby/Lua/node.js
        功能丰富:发布订阅/Lua脚本/简单的事务/pipeline(提高客户端并发效率)
        简单:不依赖外部库/单线程模型
        主从复制:主服务器、从服务器
        高可用:Redis-Sentinel(V2.8)支持高可用
        分布式:Redis-Cluster(V3.0)支持分布式
Redis典型应用场景
        缓存系统/计数器(转发、点赞、评论)/消息队列系统/排行榜/社交网络/实时系统
Redis安装(Linux)
        wget http://download.redis.io/releases/redis-3.0.7.tar.gz
        tar -xzf redis-3.0.7.tar.gz
        ln -s redis-3.0.7 redis
        cd redis
        make && make install
Redis可执行文件说明
        redis-server:Redis服务器
        redis-cli:Redis命令行客户端
        redis-benchmark:Redis性能测试工具
        redis-check-aof:AOF文件修复工具
        redis-check-dump:RDB文件修复工具
        redis-sentinel:Sentinel服务器(2.8以后)
Redis的启动方法
        最简启动
        动态参数启动
        配置文件启动:推荐单机多实例配置文件可以用端口区分开
Redis客户端连接
        redis-cli -h ip -p port
        ping
Redis客户端返回值
        状态回复/错误回复/整数回复/字符串回复/多行字符串回复
Redis常用配置
        daemonize:是否是守护进程
        port:Redis对外端口号(默认6379)
        logfile:Redis系统日志
        dir:Redis工作目录
Redis通用命令
        keys *    O(n)    遍历所有key            
        dbsize    O(1)    计算key的总数   
        exists key    O(1)   检查key是否存在   存在返回1,不存在返回0
        del key   O(1)   删除指定的key-value
        expire key seconds    O(1)   key在seconds秒后过期
        ttl key  O(1)     查看key剩余的过期时间    -1代表key存在,并且没有过期时间;-2代表key已经不存在了
        persist key   O(1)    去掉key的过期时间
        type key  O(1)     返回key的类型       string hash list set zset none
Redis数据结构的内部编码(基于时间和空间选择)(redisObject:数据类型、编码方式、数据指针、虚拟内存、其它)
        string:raw/int/embstr
        hash:hashtable/ziplist
        list:linkedlist/ziplist
        set:hashtable/intset
        zset:skiplist/ziplist






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2