目录

2.3.2.1 redis数据结构和常用命令

1、Redis介绍

2、通用命令

3、安装radis

4、数据结构

    4.6、GEO

    4.7、Stream

5、Spring使用redis

2.3.2.2 持久化机制

2.3.2.3 redis内存管理

2.3.2.4 redis主从复制

2.3.2.5 哨兵高可用机制

2.3.2.6 redis集群分片存储

2.3.2.7 redis监控


2.3.2.1 redis数据结构和常用命令

1、Redis介绍

    Redis是一个开源的使用C语言编写、支持网络、可基于内存、可持久化的日志型、Key-Value数据库,
        并提供多种语言的API。
    本质是客户端-服务端应用软件程序。
    特点是使用简单、性能强悍、功能应用场景丰富。
    Redis中文官网:http://www.redis.cn/

2、通用命令

    DEL key:该命令用于在key存在时删除key
    DUMP key:序列化给定key,并返回被序列化的值
    EXISTS key:检查给定key是否存在
    EXPIRE key seconds:为给定key设置过期时间,以秒计
    TTL key:以秒为单位,返回给定key的剩余生存时间(TTL:time to live),多久失效
    TYPE key:返回key所储存的值的类型
    keys *:会变量redis所有数据,并打印出key值(生产环境不建议使用)

3、安装radis

    1、进入redis下载目录:cd /home/download/
    2、将redis解压到/usr/local目录下: tar -zxzf redis-5.0.3.tar.gz -C /usr/local
    3、进入redis解压的目录:cd /usr/local
    4、redis-5.0.3重命名为redis:mv redis-5.0.3 redis
    5、编译redis:make
    6、启动Redis:src/redis-server
    官网参考文档:http://www.redis.cn/download.html
    新开一个xhell会话:
        1、进入redis安装目录:cd /usr/local/redis/
        2、redis客户端连接本机:src/redis-cli -h 127.0.0.1 -p 6379
        3、就可以向redis中set、get、del数据了

redis命令操作

2.3.2 Redis分布式缓存

4、数据结构

    4.1、String

            String数据结构是简单的key-value类型,value其实不仅是String,也可以是数字。
        使用场景:微博数、粉丝数(常规计数)
        常用命令:get(获取指定key的值)
                  set(设置指定key的值)
                  incr(将key中储存的数字值增一)
                  decr(将key中储存的数字值减一)
                  mget(获取所有(一个或多个)给定key的值) 

官网地址:http://www.redis.cn/commands.html

    4.2、List

            List就是链表
        使用场景:微博的关注列表、粉丝列表
        常用命令:lpush(将一个或多个值插入到列表头部)
                  rpush(在列表中添加一个或多个值)
                  lpop(移除并获取列表的第一个元素)
                  rpop(移除列表的最后一个元素,返回值为移除的元素)
                  lrang(获取所有(一个或多个)给定key的值) 

    4.3、Set
            Set就是一个集合,集合的概念就是一堆不重复值的组合
            利用Redis提供的Set数据结构,可以存储一些集合性的数据。
        使用场景:实现如共同关注、共同喜好、二度好友
        常用命令:Sadd(向集合中添加一个或多个成员)
                  Spop(移除并返回集合中的一个随机元素)
                  Smembers(返回集合中的所有成员)
                  Sunion(返回所有给定集合的并集)

    4.4、Sorted set
            Sorted set的使用场景与set类似,区别是set不是自动有序的,而Sorted set可以通过用户额外提供
            一个优先级(score)的参数来为成员排序
,并且是插入有序的,即自动排序。
        使用场景:排行榜、按照用户投票和时间排序
        常用命令:Zadd(向有序集合中添加一个或多个成员,或者更新已存在成员的分数)
                  Zrange(通过索引区间返回有序集合中指定区间内的成员)
                  Zrem(移除有序集合中的一个或多个成员)
                  Zcard(获取有序集合的成员数)

    4.5、Hash
            Hash是一个string类型的field和value的映射表(与java的hashmap类似
        使用场景:存储部分变更数据,如用户信息
        常用命令:Hget(获取存储在哈希表中指定字段的值)
                  Hset(将哈希表key中的字段field的值设为value)
                  Hgetall(获取在哈希表中指定key的所有字段和值)

    4.6、GEO

            GEO 3.2版本开始对GEO(地理位置)的支持
        使用场景:LBS应用开发
        LBS:Location Based Services(基于位置的服务)
        常用命令:GEOadd(增加地理位置的坐标,可以批量添加地理位置)
                  GEOdist(获取两个地理位置的距离)
                  GEOhash(获取某个地理位置的geohash值)
                  GEOpos(获取指定位置的坐标,可以批量获取多个地理位置的坐标)
                  GEOradius(根据给定地理位置坐标获取指定范围内的地理位置集合)
                                注意:该命令的中心点由输入的经度和纬度决定
                  GEOradiusBymember(根据给定成员的位置获取指定范围内的位置信息集合)
                                注意:该命令的中心点由给定的位置元素决定

    4.7、Stream

            Stream 5.0版本开始的新结构“流”
        使用场景:消费者生产者场景(类似MQ)
        常用命令:Xadd(往指定的流中添加消息)
                  Xlen(stream流中的消息数据)
                  Xdel(删除流中的消息)
                  Xrange(返回流中满足给定ID范围的消息)
                  Xread(从一个或者多个流中读取消息)
                  Xinfo(检索关于流和关联的消费者组的不同的消息)

5、Spring使用redis

    官网文档示例:https://docs.spring.io/spring-data/redis/docs/2.1.5.RELEASE/reference/html/#redis

2.3.2.2 持久化机制

 

2.3.2.3 redis内存管理

 

2.3.2.4 redis主从复制

 

2.3.2.5 哨兵高可用机制

 

2.3.2.6 redis集群分片存储

 

2.3.2.7 redis监控

 

相关文章: