redis的安装:

    第一种方法:
           1.首先在官网上下载redis最新的版本,命令如下:

               wget http://download.redis.io/releases/redis-4.0.8.tar.gz

        2.解压下载的redis压缩包

               tar -vxzf redis-4.0.8.tar.gz

        3.进入src目录并make

               make

        4.编译完成后可以使用如下命令进行测试

               make test

               注:如果make过程中出现了如下错误:

                      error: jemalloc/jemalloc.h: No such file or directory 
                      就执行make MALLOC=libc 就OK了,不过在执行这一句之前最好先执行 
                      make clean清理一下。

        5、启动方法  在src目录下   ./redis-server

    第二种方法:
        sudo apt-get update
        sudo apt-get install redis-server
        启动 Redis
         redis-server
        查看 redis 是否启动?
         redis-cli
        以上命令将打开以下终端:
        redis 127.0.0.1:6379>
        127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。
        redis 127.0.0.1:6379> ping
        PONG

        有时候会有中文乱码  连接的时候需要  redis-cli --raw

 

Redis常用命令集

 

- 常用管理命令:
         ping:测试连接情况,默认恢复'PONG'
         quit/exit:退出客户端
         auth:密码认证
         config:配置命令,可以查看和设置配置信息,参考密码查看与设置
         info:查看服务器信息,可以指定具体模块查看
         command:查看支持的命令
         select:选择库,总共16个,默认为0数据库;提示符后会有库号的提示,没有就是默认的库(0)
         flushdb:清空当前库
         flushall:清空所有库
         save:前台执行持久化存储
         bgsave:后台执行持久化存储

- 键(keys):
         exists:判断指定的键是否存在
         del:删除指定的键值对
         keys:查看指定样式的键,keys *表示查看所有
         ttl:查看指定键的剩余有效时间,单位为秒,不存在键返回-2,永久返回-1
         expire:设置指定键的生存时间
         persist:移除指定键的生存时间,之后该键永久有效
         move:移动指定的键到指定的库
         rename:修改指定键的名字       

- 字符串(string)
        set:设置,存在就修改,不存在就添加
        get:获取,获取指定键的值
         mset:同时设置多个键值对
        mget:同时获取多个键对应的值
         getset:设置新值,同时返回旧值
         setex:设置值及过期时间,单位为秒
        incr:数字值加1
         decr:数字值减1
        incrby:数字值加上指定值
         decrby:数字值减去指定值
        incrbyfloat:数字值加上一个浮点数
         append:键存在,值为字符串,追加指定的内容到原值的末尾
         strlen:返回键对应值的字符长度
 

- 哈希(hash)类
         hset:设置单个属性
         hget:获取单个属性
          hmset:设置多个属性
          hmget:获取多个属性
          hgetall:获取所有属性
         hexists:判断指定键是否有指定的字段
         hdel:删除指定键的指定字段
          hkeys:获取指定键的所有字段
         hvals:获取指定键的所有字段值
         hlen:获取指定键的字段个数
         hincrby:在指定键的指定字段上增加一个整数
         hincrbyfloat:在指定键的指定字段上增加一个浮点数
  ```

- 列表(list)

  ```
         lpush:从左边(头部)插入数据
         lpop:从左边(头部)删除并返回数据
          lrange:获取区间内的数据,0 -1通常可以表示所有范围
          lindex:根据索引获取元素
         llen:统计列表中元素个数
         lset:设置指定索引的元素值
          lrem:删除指定数量的元素
         linsert:在指定元素的前/后插入元素
          ltrim:修剪列表元素(保留指定范围内地,删除其他)
         rpop:从右边(尾部)删除并返回数据
         rpush:从右边(尾部)插入数据

 

- 集合(set)

  ```
           sadd:向集合中添加元素(集合不存在会自动创建,随机插入)
           scard:统计集合中元素的个数
           smembers:返回所有元素
          sismember:判断某个元素是否是集合的成员
           spop:随机删除并返回指定个数的元素,不指定个数默认一个元素
          srandmember:随机获取指定个数的元素
          srem:移除指定元素
          smove:将指定的元素从一个集合移动到另一个集合中
          sinter:求交集
           sinterstore:求交集并保存到一个集合中
           sdiff:求差集
           sdiffstore:求差集并保存到一个集合中
          sunion:求并集
          sunionstore:求并集并保存到一个集合中
  ```

- 有序集合(sorted set)

  ```
           zadd:添加元素
           zcard:统计元素个数
           zcount:指定分数区间统计
           zrange:返回指定索引范围内的元素(升序),zrevrange:降序
           zrangebyscore:返回指定分数区间的元素(升序),zrevrangebyscore:降序
           zrank:返回指定元素的索引(升序),zrevrank:降序
           zrem:移除元素
           zscore:返回元素的分数
           zincrby:将元素的分数增加一个值
           zinterstore:求交集并保存
           zunionstore:求并集并保存

redis的发布订阅:
    Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
    Redis 客户端可以订阅任意数量的频道。
    
    当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
    
    
    创建订阅频道名
    subscribe name
    
    
    通过publish name去往频道名字里面推送信息
    
    然后客户端就能收到此订阅信息