• Redis基础及入门



        一. 什么是 Redis
                Redis 是一个可基于内存,有着完备的持久化机制并以 Key-Value 形式存储的非关系型数据库。也称为数据结构服务器。

        二. Redis 的优势。
                支持数据的持久化,可以将内存中的数据保存在磁盘中,便于重启时再次使用。也就是我们平时说的缓存机制。
                提供 list ,set ,zset ,hash 等数据结构的存储
                支持数据的备份。即master-slave模式的数据备份。

        三. 服务端的安装以及启动客户端
                1. 安装并启动服务端
                        $ wget http://download.redis.io/releases/redis-3.2.9.tar.gz     --获取到下载版本的网址
                        $ tar xzf redis-3.2.9.tar.gz     --解压压缩包
                        $ cd  redis-3.2.9                       --打开目录
                        $ make                                       --编译
                        $ src/redis-server redis.conf           --启动服务端(使用默认端口6379)

                        启动成功后:
                          
                2. 启动客户端
                        $ src/redis-cli [-h 127.0.0.1 -p 6379]

                PS:   查看连接信息
                                 ps -ef | grep redis-3.2.9
                        修改端口号
                                 vim redis.conf          -- 打开redis.conf配置文件
                                 (如果没有安装vim,系统会提示使用apt install vim 安装)
                                 找到端口号所在位置,port 6379
                                 shift + r  把原端口号替换为7000
                                 :wq  保存修改并退出       至此,我们的端口号就变成7000啦
                        关闭服务器
                                 1. $ src/redis-cli [-h 127.0.0.1 -p 6379] shutdown
                                 2. kill -9 redis-server   [使用管理员身份运行]

        四. Redis命令及数据类型
                1. 数据类型
                        String:
                                redis 的最基本类型。可以是任何数据,如字符串、整数、浮点,这些统称为元素。
                                示例:
                                常用命令:
                                        SET key value :设置指定 key 的值
                                        GET key :获取指定 key 的值
                                        MGET key1 [ key2 ... ] :获取多个指定 key 的值
                                        STRLEN key :返回 key 所存储的字符串值的长度
                                        MSET key1 value1 [ key2 value2 ... ] :同时设置一个或多个 key -value
                                        INCR key :将 key 中存储的数字 + 1
                                        INCRBY key increment:给 key 中存储的数字加上指定数字( increment )
                                        DECR key:将 key 中存储的数字 - 1
                                        DECRBY key decrement:给 key 中存储的数字减去指定数字( increment )
                                        APPEND key value :追加字符串
                        hash (哈希表):
                                key-value的散列组,是一个string类型的field和value的映射表,适合用于存储对象
                                示例:
                                常用命令:
                                        HSET key field value:将哈希表 key 中的字段 field 的值设为 value
                                        HGET key field:获取存储在哈希表中指定字段的值。
                                        HLEN key:获取哈希表中字段的数量
                                        HMGET key field1 [ field2 ... ]:获取全部字段的值
                                        HMSET key field1 value1 [ field2 value2 ... ]:同时将多个 field-value (域-值)对设置到哈希表 key 中。
                        list:
                                一个有序的序列集合并且每个节点都包含了一个元素
                                示例:
                                常用命令:
                                        LLEN key:获取列表长度
                                        LPUSH key value1 [ value2 ... ]:将一个或多个值插入列表
                                        RPOP key:移除并获取列表最后一个元素
                                        LPOP key:移出并获取列表的第一个元素
                                        LRANGE key start stop:获取列表指定范围内的元素
                        set:
                                存储各不相同的元素
                                示例:
                                常用命令:
                                        SADD key member1 [ member2 ... ]:向集合添加一个或多个成员
                                        SMEMBERS key member:返回集合中的所有成员
                                        SREM key member1 [ member2 ... ]:移除集合中一个或多个成员
                                        SCARD key:获取集合的成员数
                                        SISMEMBER key member:判断 member 元素是否是集合 key 的成员
                        sort set (有续集合):
                                带分数的score-value有序集合,其中 value 是唯一的
                                示例:
                                常用命令:
                                        ZADD key score1 member1 [ score2 member2 ... ]:向有序集合添加一个或多个成员,或修改已存在成员的分数
                                        ZCARD key:获取有序集合的成员数
                                        ZRANK key member:返回有序集合中指定成员的索引
                                        ZRANGE key start stop [ WITHSCORES ]:通过索引区间返回有序集合指定区间内的成员
                                        ZCOUNT key min max:计算在有序集合中指定区间分数的成员数
                                        ZREM key member [ member2 ... ]:移除有序集合中的一个或多个成员
                2. 命令
                        1. HyperLogLog
                                用来做基数统计的算法。无论输入元素的数量或体积有多大,都只占用固定的、很少的空间。且元素只用来计算基数,并不会存储元素本身。
                                常用命令:
                                        PFADD key element [ element ... ]:添加指定元素到 HyperLogLog 中
                                        PFCOUNT key [ key ... ]:返回给定 HyperLogLog 的基数估算值。
                                        PFMERGE destkey soucekey [ sourcekey ... ]:将多个 HyperLogLog 合并为一个 HyperLogLog
                        2. 发布订阅(pub/sub)
                                一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
                                客户端可以订阅任意数量的频道。
                                常用命令:
                                        PSUBSCRIBE pattern [ pattern ... ]:订阅一个或多个符合给定模式的频道
                                        PUBSUB subcommand [argument [ argument ... ] ]:查看订阅与发布系统状态。
                                        PUBLISH channel message:将信息发送到指定的频道。
                                        PUNSUBSCRIBE [ pattern [ pattern ... ] ]:退订所有给定模式的频道
                                        SUBSCRIBE channel [ channel ... ]:订阅给定的一个或多个频道的信息。
                                        UNSUBSCRIBE [ channel [ channel ... ] ]:指退订给定的频道。
                        3. 事物
                                可一次性执行多个命令且1.  事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。(事物是一个单独隔离操作)  2. 事务中的命令要么全部被执行,要么全部都不执行。(事务是一个原子操作)
                                执行过程:开始事物 -->  命令入队  -->  执行事务
                                常用命令:
                                        MULTI:标记一个事物块的开始
                                        EXEC:执行所有事务块内的命令。
                                        DISCARD:取消事务,放弃执行事务块内的所有命令。
                                        UNWATCH:取消 WATCH 命令对所有 key 的监视。
                                        WATCH:监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
                        4. 脚本
                                使用 Lua 解释器来执行脚本。
                                常用命令:
                                        EVAL script numkeys key [key ...] arg [arg ...]:执行 Lua 脚本。
                                        SCRIPT EXISTS script [ script ... ]:查看指定的脚本是否已经被保存在缓存当中。
                                        SCRIPT FLUSH:从脚本缓存中移除所有脚本
                                        SCRIPT KILL:杀死当前正在运行的 Lua 脚本。
                                        SCRIPT LOAD script:将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本
                        5. 连接
                                连接 redis 服务
                                常用命令:
                                        AUTH password:验证密码是否正确
                                        ECHO message:打印字符串
                                        PING:查看服务是否运行
                                        QUIT:关闭当前连接
                                        SELECT index:切换到指定的数据库
                        6. 服务器
                                管理 redis 服务
                                常用命令:
                                        BGSAVE:在后台异步保存当前数据库的数据到磁盘
                                        CLIENT KILL [ip:port] [ID client-id]:关闭客户端连接
                                        CLIENT LIST:获取连接到服务器的客户端连接列表
                                        CLIENT GETNAME:获取连接的名称                                    
                                        CLIENT PAUSE timeout:在指定时间内终止运行来自客户端的命令
                                        CLIENT SETNAME connection-name:设置当前连接的名称
                                        CLUSTER SLOTS:获取集群节点的映射数组
                                        CONFIG REWRITE:对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写
                                        INFO [section]:获取 Redis 服务器的各种信息和统计数值
                                        LASTSAVE:返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示
                                        ROLE:返回主从实例所属的角色
                                        SAVE:异步保存数据到硬盘
                                        SHUTDOWN [NOSAVE] [SAVE]:异步保存数据到硬盘,并关闭服务器
                                        SLAVEOF host port:将当前服务器转变为指定服务器的从属服务器(slave server)
                        7. 数据备份与恢复
                        8. 安全
                        9. 性能测试
                        10. 客户端连接
                        11. 管道技术
                        12. 分区
        五. Redis 的配置文件(redis.conf)参数详解
        六. 扩展内容

  • 相关阅读:
    iOS面试题6.30总结
    关于外挂
    webstorm快捷方式
    HTML注释的一些规范
    认识Python
    正体复本术解决容易疲劳、不能持续集中精力工作-海淀区非物质文化遗产:#正体复本术#
    皮肤发痒的观察与思考
    win10不错的快捷键
    项目属性的target platform和target platform version到底是什么(vs2015开发windows驱动小记)
    玩Web虎-运行时受保护文件不可复制
  • 原文地址:https://www.cnblogs.com/JealousGirl/p/basic.html
Copyright © 2020-2023  润新知