美文网首页我爱编程
Mac环境下Redis的安装和基本命令的使用

Mac环境下Redis的安装和基本命令的使用

作者: TitanCoder | 来源:发表于2018-07-25 09:29 被阅读502次
    Redis

    Redis简介

    • Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库
    • Redis与其他key - value缓存产品有以下三个特点:
      • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
      • Redis不仅仅支持简单的key-value类型的数据,同时还提供listsetzsethash等数据结构的存储。
      • Redis支持数据的备份,即master-slave模式的数据备份

    Redis的优势

    • 性能极高 –Redis能读的速度是110000次/s,写的速度是81000次/s 。
    • 丰富的数据类型 – Redis支持二进制案例的Strings, Lists, Hashes, SetsOrdered Sets数据类型操作。
    • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来
    • 丰富的特性 – Redis还支持publish/subscribe, 通知, key过期等等特性

    Redis与其他key-value存储有什么不同?

    • Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径
    • Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象
    • Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存
    • 在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问

    Redis的安装

    • 至于安装, 我这里就不在班门弄斧了, 这里给大家推荐一篇博客: mac系统安装redis
    • 文章写得非常详细, 建议参考安装

    Redis命令操作

    • Redis命令十分丰富,包括的命令组有ClusterConnectionGeoHashesHyperLogLogKeysListsPub/SubScriptingServerSetsSorted SetsStringsTransactions一共14个redis命令组两百多个redis命令
    • Redis中文命令大全, 可以通过检索功能快速查找命令
    • 查看网站结构图,它以节点图的形式展示了所有redis命令

    String

    • Stringredis最基本的类型,最大能存储512MB的数据
    • String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等

    设置值

    # a、设置键值
        set key value
        set titan titan
    # b、设置键值及过期时间,以秒为单位
        setex key seconds value
        setex c 10 good
    # c、设置多个键值
        mset key value [key value ……]
        mset d good e nice f bad
    

    获取值

    # a、根据键获取值,如果键不存在则返回None(null 0 nil)
        get key
        get d
    # b、根据多个键获取多个值
        mget key [key ……]
        mget d f a
    

    运算命令

    前提条件是:值是字符串类型的数字

    # a、将key对应的值加1
        incr key
        incr g
    # b、将key对应的值减1
        decr key
        decr h
    # c、将key对应的值加整数
        incrby key intnum
        incrby g 12
    # d、将key对应的值加整数
        decrby key intnum
        decrby g 11
    

    其他常用命令

    # a、追加值
        append key value
        append d lucky
    # b、获取值长度
        strlen key
        strlen d
    

    Keys

    # 1、查找键,参数支持正则
        keys pattern
    # 2、判断键是否存在,如果存在返回1,不存在返回0
        exists key
    # 3、查看键对应的value类型
        type key
    # 4、删除键及对应的值
        del key [key ……]
    # 5、设置过期时间,以秒为单位
        expire key seconds
    # 6、查看有效时间,以秒为单位
        ttl key
    

    Hashes

    • hash是一个string类型的fieldvalue的映射表,hash特别适合用于存储对象
    • Redis中每个hash可以存储 232 - 1 键值对(40多亿)
    # 1、设置
        # a、设置单个值
            hset key field value
            hset a1 field a1
        # b、设置多个值
            hmset key field value [field value ……]
            hmset a3 field1 a3 field2 a4
    # 2、获取
        # a、获取一个属性的值
            hget key field
            hget a3 field1
        # b、获取多个属性的值
            hmget key filed [filed ……]
            hmget a3 field1 field2
        # c、获取所有属性和值
            hgetall key
            hgetall a3
        # d、获取所有属性
            hkeys key
            hkeys a3
        # e、获取所有值
            hvals key
            hvals a3
        # f、返回包含数据的个数
            hlen key
            hlen a3
    # 3、其它
        # a、判断属性是否存在,存在返回1,不存在返回0
            hexists key field
            hexists a3 field3
            hexists a3 field1
        # b、删除属性及值, 成功返回1, 失败返回0
            hdel key field [field ……]
            hdel a2 field
        # c、返回值的字符串长度
            hstrlen key field
            hstrlen a3 field1
    

    列表(List)

    • Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
    • 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
        # 1、设置
            # a、在头部插入
                lpush key value [vlaue ……]
                lpush list 1 2 3 4
            # b、在尾部插入
                rpush key value [vlaue ……]
                rpush list 9 8 7 6
            # c、在一个元素的前|后插入新元素
                linsert key before|after pivot value
                linsert list before 4 10
                linsert list after 3 5
            # d、设置指定索引的元素值
                lset key index value
                lset list 3 11
                lset list -2 21
                # 注意:index从0开始
                # 注意:索引值可以是负数,表示偏移量是从list的尾部开始,如-1表示最后一个元素
        # 2、获取
            # a、移除并返回key对应的list的第一个元素
                lpop key
                lpop list
            # b、移除并返回key对应的list的最后一个元素
                rpop key
                lpop list 
            # c、返回存储在key的列表中的指定范围的元素
                lrange key start end
                lrange list 2 4
                # 注意:start end都是从0开始
                # 注意:偏移量可以是负数
        # 3、其它
            # a、裁剪列表,改为原集合的一个子集
                ltrim key start end
                ltrim list 0 2
                # 注意:start end都是从0开始
                # 注意:偏移量可以是负数
            # b、返回存储在key里的list的长度
                llen key
                llen list
            # c、返回列表中索引对应的值
                lindex key index
                lindex list 2
    

    集合(Set)

    • RedisSetString类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
    • `Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
    • 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
        # 1、设置
            # a、添加元素
                sadd key member [member ……]
                sadd set1 1 2 3 4 5 3 2
                sadd set2 4 5 6 7 8
        # 2、获取
            # a、返回key集合中所有元素
                smembers key
                smembers set1
            # b、返回集合元素个数
                scard key
                scard set1
        # 3、
            # a、求多个集合的交集
                sinter key [key ……]
                sinter set1 set2
            # b、求多个集合的差集
                sdiff key [key ……]
                sdiff set1 set2
                # 输出: 1 2 3 
                sdiff set2 set1
                # 输出: 6 7 8
                # 注意: 两个结合前后位置变化输出的结果是不一样的
            # c、求多个集合的合集
                sunion key [key ……]
                sunion set1 set2
            # d、判断元素是否在集合中,存在返回1,不存在返回0
                sismember key member
                sismember set1 4
                sismember set1 7
    

    有序集合(sorted set)

    • 有序集合,元素类型为Sting,元素具有唯一性,不能重复
    • 每个元素都会关联一个double类型的score(表示权重),通过权重的大小排序,元素的score可以相同
    • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
    • 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)
        # 1、设置
            # a、添加
                zadd key score member [score member ……]
                zadd slist 1 a 5 b 3 c 2 d 4 e
        # 2、获取
            # a、返回指定范围的元素
                zrange key start end
                zrange slist 0 2
            # b、返回元素个数
                zcard key
                zcard slist
            # c、返回有序集合key中,score在min和max之间的元素的个数
                zcount key min max
                zcount slist 1 3
            # d、返回有序集合key中,成员member的score值
                zscore key member
                zscore slist e
    

    相关文章

      网友评论

        本文标题:Mac环境下Redis的安装和基本命令的使用

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