redis数据读写命令

redis的特性:
    1)内存存储与持久化
    2)5种数据类型
        字符串:
        hash:
        链表:
        集合:
        有序集合:    
    3)Redis的多数据库
        1)Redis默认有16个数据库,数据库名分别为:db0、db1 ... db15,redis不支持自定义数据库名称
        2)能够经过修改配置文件中的databases参数来修改默认数据库的个数
        3)客户端链接到Redis服务后会自动选择0号数据库。注:能够根据提示符看出目前客户端是在操做哪一个数据库。eg:127.0.0.1:6379>表示0数据库,127.0.0.1:6379[1]>表示1数据库。
        4)经过SELECT命令能够更换数据库:eg:SELECT 1
    
    注意:
        1)Redis不支持自定义数据库名称,不支持为每一个数据库设置访问密码
        2)Redis的多个数据库之间不是彻底隔离的。
            eg:FLUSHALL命令会清空全部数据库的数据。
        
    redis


通用命令:
    type key         # 获取key的类型数据库

        
String类型经常使用命令:app

    set:
        set key value                     # 插入key-value对
        setnx key value                 # 若key不存在则插入键值对;若key已经存在,则不插入键值对,返回0。nx:not exist
        setex key 有效期 value             # 插入键值对并设置有效期(单位为秒)
        mset key1 value1 key2 value2     # 批量插入键值对,结果只有两种:所有成功并返回ok或所有失败并返回0
        msetnx key1 value1 key2 value2     # 批量插入键值对,结果只有两种:所有成功并返回ok或所有失败并返回0,若是key1或key2已经存在,则插入所有失败。
        expire key n                     # 设置key对应的键值对的过时时间为n秒
        rename key1 key2                 # 将key1重命名为key2
        del key                         # 删除key对应的键值对
        persist key                     # 删除key的过时时间,使key对应的键值对永久存储。
        
    get:
        get key                         # 获取key对应的value
        getset key value                 # 设置key对应的新值,并返回key对应的旧值
        mget key1 key2                     # 批量获取多个key对应的值
        key pattern                     # 获取匹配pattern的全部key对应的值
        strlen key                         # 获取key对应的value的长度
        exists key                         # 验证key对应的键值对是否存在:1表示存在,0表示不存在    
        ttl key                          # 获取key对应的键值对剩余的生存时间(单位为秒),ttl返回值:正数表示剩余生存时间,-1表示没有过时时间,永久存储,-2表示数据已经被删除。对象

    其它:
        incr key             # 对key对应的value进行+1操做,若key不存在,则会将key对应的value设为1,并存储该键值对。若key对应的value的类型不是int类型,则会返回错误。
        incrby key n         # 对key对应的value进行+n操做,若是key不存在,则会将key对应的value设为n,并储存该键值对。
        decr key             # 对key对应的value进行-1操做,若是key不存在,则会讲key对应的value设为-1,并存储该键值对。
        decrby key n         # 等价于incrby key -n
            
        append key appendStr         # 把appendStr追加到key对应的value的后面
            
        setrange key 下标 替换的字符串     
            # 替换指定key对应的value从指定下标至最后的值
        getrange key startIndex endIndex
            # 获取指定key对应的value的子串(包含startIndex和endIndex)
            # 字符串左面下标是从0开始的,    eg:获取前3个字符     getrange key 0 2
            # 字符串右边下标是从-1开始的,    eg:获取最后3个字符    getrange key -3 -1
        
        
        
list(链表)类型经常使用命令:队列

    概念:list(链表)类型:每一个子元素都是String类型的双向链表
     
    push:    
        lpush key value     # 在名称为key的链表 头部(l表示left)添加字符串元素value    
        rpush key value     # 在名称为key的链表 尾部(r表示right)添加字符串元素value
        
    pop:
        lpop key             # 在名称为key的链表 头部(l表示left)删除一个元素,并返回删除元素。若是链表key不存在或者为空,则当即返回null。
        rpop key             # 在名称为key的链表 尾部(r表示right)删除一个元素,并返回删除元素,若是链表key不存在或者为空,则当即返回null。
            
        blpop key
        brpop key
            # 阻塞式(b表示block)的获取链表中的元素
            # 优势:避免使用轮询的方式来判断队列(链表)中是否有任务存在。
            
        rpoplpush key1 key2
            # 从名称为key1的链表的尾部移除一个元素,而且将这个元素添加到名称为key2的链表的头部,并返回这个元素,整个操做是一个原子操做。
            # 若是链表key1不存在,或者链表key1是一个空链表,则返回空。
        
    其它:    
        llen key                                 # 返回名称为key的链表的长度内存

        lset key index value                     # 在名称为key的链表中,将(从左边开始)第index元素的值设为value,下标从0开始element

        lindex key index                         # 返回名称为key的链表的第index个元素rem

        lrange key index1 index2                 # 获取名称为key的链表中指定范围的元素
            
        linsert key before elementValue value     # 在名称为key的链表的elementValue元素以前添加字符串元素value字符串

        lrem key count value         # 在名称为key的链表中,删除count个和value相同的元素,count>0时,按从头至尾的顺序删除,count=0时,删除所有。
            
        ltrim key index1 index2     # 在名称为key的链表中,保留index1到index2范围内的数据
        get

    
hash类型及操做
    概念:redis中的hash是一个string类型的field和value的映射表。它的添加、删除操做都是O(1),hash特别适合于存储对象。

    hset mapName key value     # 往名称为mapName的map中添加key-value对,map若是不存在,则自动建立map。若是key-value对已存在,则更新。     hget mapName key         # 获取map中指定key的value     hdel mapName key         # 删除map中指定的key-value     hlen mapName             # 获取map的大小     hgetall key             # 获取map中全部的key-value对           set(集合)类型及操做:     概念:     sadd key value         # 向名称为key的集合中添加字符串元素value     srem key value         # 将名称为key的集合中的value元素删除     smembers key         # 获取set中全部的元素

相关文章
相关标签/搜索