常用的语法以及使用方式:
    
    key中不能包含回车空格等,key不要太长,占用内存。
    概念介绍:
        差集: a:{1,2,3} b:{2,3,4},以a为锚点,差集为1。
        交集:共有部分就是交集{2,3}
        并集:所有出现过的部分合并就是并集{1,2,3,4}
 

string类型:redis最基础的类型,redis字符串是二进制安全的,这意味着他们有一个已知长度没有任何特殊字符终止,所以你可以存储任何东西,512M为上限。

string在redis中的表现形式:
    struct sdf{
        long len;
        long free;
        char buf[];
    }

    添加键值:

        SET key value [EX seconds][PX milliseconds][NX|XX]
        设置键/值,重复设置会覆盖之前的。
        例:set name tom
 
    添加值和生存时间:
        SETEX key seconds value
        设置键aaa,值bbb,存活时间5s
        例:setex aaa 5 bbb
        注意:setex是原子性操作,设置值和设置有效时间会在同一时间完成。
 
     根据键获取值,不存在返回nil,得到的值不是字符串,将返回一个错误,get只能用于处理字符串
        GET key
        例:get aaa
 
     将value追加到原来的key的末尾:
        APPEND key value
        key不存在就会执行set操作
 
    同时设置一个或者多个key-value对,key存在会覆盖原值。
        MSET key value [key value ...]
    
    获取多个key-value
        MGET key [key...]
    
    覆写:在指定位置偏移复写value值,从offset开始
        STRANGE key offset value
        如:redis>set a "hello world"
                OK
               
                redis>strange a 6 "Redis"
                (integer) 11
    
                redis>GET a
                "hello Redis"
    获取键值长度:
        STRLEN key
 
    其他指令:
    GETSET    设置新值返回旧值。
    getset key value
    set a 1
    get a     //返回1
    getset a 2    // 返回1并将值改为2 
    get a     //返回2
 
    GETRANGE  得到字符串的子字符串存放在一个键(获取当前键对应的值在索引内的部分)
    getrange key startindex endindex
    set a 123456
    getrange a 0 1    //返回1
    getrange a 1 3    //返回234
    
    GETBIT      对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
    getbit key offset
    SETBIT      对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
    setbit key offset value (offset的值必须>=0)
 
    SETNX      将 key 的值设为 value ,当且仅当 key 不存在。
    setnx key value
 
    MSETNX   同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
    msetnx key value [key value...]
 
    PSETEX    和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。(版本>=2.6.0)
    psetex key milliseconds value
    
    INCR          将 key 中储存的数字值增一。数字+1,非数字返回错误,key不存在,先将值初始化为0,在执行incr操作。
    incr key
    
    INCRBY     将 key 所储存的值加上指定增量。大体同上。
    incr key increment
 
    INCRBYFLOAT    为 key 中所储存的值加上指定浮点数增量,最多保留小数点后17位。(版本>=2.6.0)
    incrbyfloat key increment
 
    DECR        将 key 中储存的数字值减一。
    decr key
    
    DECRBY    将key中存储的数字减去固定值。
    decrby key decrement
    
hash类型:
    redis中哈希值是字符串字段和字符串值之间的映射。
    相比string类型,hash类型提供了更多域的操作,因此在表现对象时,它是非常合适的数据类型。
    Redis中哈希值的存储容量也是非常大的,能存储超过400十亿键值对。
    
    添加键值:
    HSET key field value   
    hset what sb sb.com
    设置what键中sb域的值为sb.com,重新设置会覆盖之前的。
    
    设置多个键值:
    HMSET key field value [field value....]
 
    获取值:
    HGET key field
    hget what sb
    
    获取多个值:
    HMGET key field [field..]
    hmget what sb ss
    
    获取所有值:这里包含域和值。排列:域、值...
    HGETALL key 
    比如:
    hmset mykey aa aa.com bb bb.com
    hgetall mykey
    //aa            域
    //aa.com     值
    //bb
    //bb.com
    
    验证某个键下某个域是否存在,存在返回1,不存在返回0
    HEXISTS key field
    
    获取所有的域,存在返回一个列表,不存在返回一个空表
    HKEYS key 
    
    获取域的数量
    HLEN key
    
    删除某键中一个或者多个域
    HDEL key field [field...]
    
list类型
 
图解:
    ------------------------------
    头部                        尾部
 
    list类型是一个简单的字符串列表,按照插入顺序排序。
    可以在左边或者右边操作元素,左边为头部,右边为尾部。而且对于list两端的数据操作时间是固定的,即使数据是百万级的,但是如果list很大,对于中间某个数据的读取却很慢。
    一个列表最多包含2^32-1个元素(超过40亿个元素)。
    
    特点:有序、允许重复
 
    添加元素:(自己测试只能添加一个元素,可能是版本太低)
    LPUSH key value [value...]
    lpush friends zhangsan lisi wangwu
    从左到右依次插入表头,那么结果为:
    wangwu lisi zhangsan 
        
    将指定所谓位置的值设置为某值:
    LSET key index value
    
    删除第一个元素并返回:
    LPOP key
    
    LINDEX 获取指定索引的元素,0为第一个元素,负数则从后数,如-1是最后一个元素。
    LINDEX key index 
    比如:
    lpush mylist 1 2 3    //插入三个元素,3 2 1
    lindex mylist 0         //索引0的值为3
    lindex mylist -1        //索引-1的值为最后一个元素1
 
    插入元素,将值插入到某元素前/后,当目标值pivot不存在时,不进行任何操作,当key不存在,key被视为空列表,当key对应的值不是一个列表,则返回错误。
    LINSERT key BREFORE/AFTER pivot value
    
    在key对应的列表中删除count个与value相同的元素,当count为0时移除所有。count<0,移除count的绝对值个元素。
    LREM key count value
    比如列表: 1 2 3 1 1 1
    lrem 某key -3 1 代表删除某key对应的列表中前三个值为1的元素。
    lrem 某key 0 1 代表删除某key对应的列表中所有值为1的元素。
 
    获取列表的长度,key不存在返回0
    LLEN key
 
    指定范围删除其他所有元素,可以用负数,同上
    LTRIM key start stop
    ltrim mylist 0 2     //只保留列表中索引0-2号元素
    
set类型
 
    set类型是一个有序的字符串集合,你可以快速的完成添加、删除以及测试元素是否存在。
    特点:无序
 
    添加多元素:
    SADD key value [value..]
 
    随机取出并删除元素,返回的元素即被删除的元素。
    SPOP key 
    
    取出全部元素,无元素返回空集合。
    SMEMBERS key
 
    比较差集,获取第一个key于其他几个key的差集。
    SDIFF key [key...]
    例子:
    SADD a 1 2 3 4
    SADD b 2 3 4
    SADD c 3 4 5
    结果:1
    这里要比较的就是 a - ((b + c)中a元素的部分)即a中的2 3 4在b或c元素中出现过了,未出现的只有1。
       
    获取交集
    SINTER key [key...]
    
    获取并集
    SUNION key [key...]
    
    判断某个元素在集合中是否存在,存在返回1,不存在返回0
    SISMEMBER key member
    例子:
    SADD aaa 111 222 333 444
    SISMEMBER aaa 222
    返回1
    SISMEMBER aaa 555
    返回0
        
    移动元素,将元素从A集合移动到B集合,从A集合中删除元素,在B集合中添加元素。
    SMOVE sourcekey destinationkey members
    SADD a 11 22 33
    SADD b 44 55
    SMOVE a b 22
    结果:
    a:{11,33}
    b:{22,44,55}
    
    移除多个元素
    SREM key member [member..]
 
 
zset类型
    有序集合,与普通集合非常类似,不允许重复元素。不同于普通集合的是,有序集合包含一个评分属性,使用评分属性来控制集合的顺序,评分属性可以重复,但集合内数据不允许重复。使用有序集合可以非常快的对数据进行增删改。可以通过评分和次序获得一个范围的元素。可以快速存在性测试,快速访问集合中的某个元素。
 
    添加多个元素
    ZADD key score member [[score member] [score member]...]
    
    移除多个元素
    ZREM key member [member...]
 
    获得指定元素的评分
    ZSCORE key member
    
    获得指定位置的元素值(withscores属性展示score值),返回的数据递增显示
    ZRANGE key start stop [withscores]
 
    获取结合成员的数量
    ZCARD key
    
    获取指定评分内的集合成员数量,包含min、max的值
    ZCOUNT key min max
    
    获取元素在结合中的排名,即索引,从0开始
    ZRANK key member
    
    给集合内某元素的评分增加增量,比如本身评分2000,加500,评分变成2500
    ZINCREBY key increment member
    
 
对于key的管理:

    模糊查询所有匹配的key
    KEYS pattern 
    keys *a*    查询所有key中包含字符a的key
 
    查询某个key是否存在,存在返回0,不存在返回1
    EXISTS key 
    
    将某个key从当前数据库转移到目标数据库中,redis中默认使用的是数据库0,切换数据库命令是select databasename(比如databasename = 1),这样就切换到数据库1中了。
    如果当前数据库没有这个key,则移动失败返回0。若目标数据库中已经存在当前key,则无移动效果。成功返回1,失败返回0。
    MOVE key db
    
    重名名某key,key不存在或者和新key相同返回错误,新key已存在将覆盖原值。
    RENAME key newKey
    
    排序SORT
    SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern...]] [ASC | DESC] [ALPHA] [STORE destination]
 
    设置生存时间,单位:秒
    EXPIRE key second
        
    获取某key的剩余生存时间,单位秒,返回-2证明没有这个key,返回-1代表key存在没有设置剩余时间。
    TTL key
 
    
    
 
 
 
 
 
 
 
 
 
 

redis的使用方式的更多相关文章

  1. Spring-Session实现Session共享Redis集群方式配置教程

    循序渐进,由易到难,这样才更有乐趣! 概述 本篇开始继续上一篇的内容基础上进行,本篇主要介绍Spring-Session实现配置使用Redis集群,会有两种配置方式,一种是Redis-Cluster, ...

  2. redis持久化的方式RDB 和 AOF

    redis持久化的方式RDB 和 AOF 一.对Redis持久化的探讨与理解 目前Redis持久化的方式有两种: RDB 和 AOF 首先,我们应该明确持久化的数据有什么用,答案是用于重启后的数据恢复 ...

  3. centos6.x下让redis以服务方式运行

    1.从官网下载redis-2.8.9.tar.gz之后,将redis解压在/usr/local下,目录是redis-2.8.9,然后按照官网给出的办法安装redis即可. 2.安装完在redis-2. ...

  4. 超详细,多图文介绍redis集群方式并搭建redis伪集群

    超详细,多图文介绍redis集群方式并搭建redis伪集群 超多图文,对新手友好度极好.敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲.且看且珍 ...

  5. Redis 通过 RDB 方式进行数据备份与还原

    Redis 通过 RDB 方式进行数据备份与还原 Intro 有的时候我们需要对 Redis 的数据进行迁移,今天介绍一下通过 RDB(快照)文件进行 Redis 数据的备份和还原 Redis 持久化 ...

  6. ubuntu 安装redis两种方式 教程

    方式一: 下载地址:http://redis.io/download,下载最新文档版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redi ...

  7. redis的持久化方式RDB和AOF的区别

    1.前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据.由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能, ...

  8. Redis持久化的方式

    Redis小知识: redis是键值对的数据库,有5中主要数据类型: 字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset) Redis持 ...

  9. 万能分布式消费框架,添加基于redis中间件的方式。

    框架目的是分布式调度起一切任何函数(当然也包括调度起一切任何方法). 之前写的是基于rabbitmq的,作为专用的消息队列好处比redis的list结构好很多.但有的人还是强烈喜欢用redis,以及r ...

  10. 峰Redis学习(8)Redis 持久化AOF方式

    第三节:Redis 的持久化之AOF 方式 AOF方式:将以日志,记录每一个操作   优势:安全性相对RDB方式高很多: 劣势:效率相对RDB方式低很多: 1)AOF方式需要配置: # Please ...

随机推荐

  1. 制作一句话图片马(NO)

  2. 老男孩python作业1

    作业1:编写登陆接口 (1)输入用户名密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 作业2:多级菜单 (1)三级菜单 (2)可依次选择进入各子菜单 (3)所需新知识点:列表.字典 任务1思 ...

  3. ES6问题记录--Promise

    在读[阮一峰]的 ES6 入门文档的时候,有一段代码是这样的. 文章中,还有一段是这样写的 所以,Promise.resolve(3).finally(()=>{}),解析出来的resolve ...

  4. 洛谷 P4317 花神的数论题(组合数)

    题面 luogu 题解 组合数 枚举有多少个\(1\),求出有多少种数 扫描\(n\)的每一位\(1\), 强制选\(0\)然后组合数算一下有多少种方案 Code #include<bits/s ...

  5. 115th LeetCode Weekly Contest Prison Cells After N Days

    There are 8 prison cells in a row, and each cell is either occupied or vacant. Each day, whether the ...

  6. 通过 rundll32 创建设置注册表项权限

    [Version]SIGNATURE="$Windows NT$" [DefaultInstall]AddReg=test.reg [test.reg]HKLM,"SOF ...

  7. once函数,简约不简单的

    module.exports = once once.proto = once(function () { Object.defineProperty(Function.prototype, 'onc ...

  8. scrapy安装和框架内容

    在cdm中:直接,pip install scrapy 有可能让你升级一下pip先,就输入这个:python -m pip install --upgrade pip 当它报错的话,看看它是缺了什么, ...

  9. (转)netstat 命令详解

    netstat 命令详解  原文:https://www.cnblogs.com/xieshengsen/p/6618993.html netstat命令是一个监控TCP/IP网络的非常有用的工具,它 ...

  10. 一键压测工具改造(locust)

    本文内容来自“天外归云”大神,原文链接http://www.cnblogs.com/LanTianYou/p/5987741.html,目前只对启动脚本做了一些改造,应该说是,不适用powershel ...