目录
数据库操作:
key的操作:
Redis 数据类型:
String类型数据:
List数据类型:
Set数据类型:
ZSet数据类型:
Hash数据类型:
发布订阅:
数据库操作:
命令 | 说明 | select | 切换数据库,总共16个,默认选中索引为0的。 | flushdb | 删除当前db中所有数据。 | flushall | 删除所有db中的所有数据。 |
key的操作:
command key_name:key命令的基本语法。 | 命令 | 说明 | keys pattern | 查询相应的key,在redis里,允许使用正则表达式。 | del key1 key2 ... Keyn | 删除1个或多个键,返回真正删除的key的数量。 | exists key | 判断key是否存在,不存在返回0,存在返回1。 | expire key 整型值 | 设置key的生命周期,以秒为单位。 redis中的key超过生命周期,redis会自动删除过期的key, redis 是一个单线程的程序但是他会有个守护进程。Quartz 类似 Cron 定是跑的守护线程。会定期删除过期的key。 | expireat key timestamp | 作用和expire类似,用于设置key的过期时间,不同的在于expireat接受的参数是unix时间戳。 | pexpire key milliseconds | 设置key的过期时间以毫秒计算。 | pexpireat key milliseconds_tiemstamp | 设置key的过期时间戳以毫秒计算。 | persist key | 把指定key置为永久有效,将带过期的键变为永不过期。 | ttl key | 查询key的生命周期,返回:秒数, 注意:对于 已过期的key/不存在的key,都返回-1,Redis2.8中,对于不存在的key,返回-2 | pttl key | 以毫秒为单位,返回key剩余的过期时间,注意:对于 已过期的key/不过期的key,都返回-1,Redis2.8中,对于不存在的key,返回-2 | rename key newkey | 给key赋一个新的key名。 注意:如果newkey已存在,则newkey的原值被覆盖。 | renamenx key newkey | 把key改名为newkey,发生修改返回1,未发生修改返回0。 注意: nx--> not exists,,即newkey不存在时,作改名动作。 | move key db | 将当前数据库的 key 移动到给定的数据库 db 当中, 注意: 一个redis进程,打开了不止一个数据库, 默认打开16个数据库,从0到15编号,如果想打开更多数据库,可以从配置文件修改。 | randomkey | 返回当前数据库中的随机key | type key | 返回key存储的值的类型, 所对应的value是什么类型 | scan cursor [match pattern] [count count] | 用于迭代数据库中的数据库键: SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。 SCAN 返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标, 而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。如果新游标返回 0 表示迭代已结束。 参数说明: cursor:游标。 partten:匹配的模式。 count:指定从数据集里返回多少元素,默认为10。 相关命令: sscan:用于迭代集合键中的元素。 hscan:用于迭代哈希键中的元素。 zscan:用于迭代有序集合键中的元素(包括元素成员和元素分值)。 |
Redis 数据类型:
数据类型 | 说明 | String类型(字符串) | String是Redis最基本的类型,可以理解成与Memcached一模一样的类型,一个 key对应一个value,String类型的值最大能存储 512MB。 String类型是二进制安全的。意思是redis的String可以包含任何数据。比如jpg图片或者序列化的对象。 | List类型(列表) | Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 | Set类型(集合) | Redis 的Set是String类型的无序集合,集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 | zset类型 (sorted set:有序集合) | Redis zset和se 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 zset的成员是唯一的,但分数(score)却可以重复。 | Hash类型(哈希) | Redis hash 是一个键值(key=>value)对集合。 Redis hash 是一个 string 类型的field和value的映射表,hash特别适合用于存储对象。 |
String类型数据:
命令 | 说明 | set key value [ex] / [px] [nx] /[xx] | 注意: 如果ex表示秒数,px表示毫秒数,ex、px同时写,以后面的有效期为准,如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒。 nx: 表示key不存在时,执行操作。 xx: 表示key存在时,执行操作。 | setnx key value | key 不存在时,为 key 设置指定的值。 | get key | 获取key的值。 | mset key1 value1 key2 value2 .. keyN valueN | 同时设置一个或多个key-value 对。 | msetnx key1 value1 key2 value2 .. keyN valueN | 所有给定key都不存在时,同时设置一个或多个 key-value 对。 | mget key1 key2 ..keyn | 获取多个key的值。 | setex key timeout value | 为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。 | psetex key milliseconds value | 创建key,并以以毫秒为单位设置key的生存时间。 | strlen key | 返回key所存储的字符串的长度。 | append key value | 把value追加到key的原值上。 | setrange key offset value | 把字符串的offset偏移字符,改成value. 注意: 如果偏移量>字符长度, 该字符自动补\x00 | getrange key start stop | 获取字符串中 [start, stop]范围的值, 对于字符串的下标,左数从0开始,右数从-1开始。 注意: 1: start>=length, 则返回空字符串。 2: stop>=length,则截取至字符结尾。 3: 如果start 所处位置在stop右边, 返回空字符串。 | getset key newvalue | 获取并返回旧值,设置新值。 | incr key | 指定的key的值加1,并返回加1后的值。 注意,不存在的key当成0,再incr操作,范围为64有符号。 | incrby key number | key 中储存的数字加上指定的增量值。 | incrbyfloat key floatnumber | 为 key 中所储存的值加上指定的浮点数增量值。 | decr key | key 中储存的数字值减一。 | decrby key number | 将 key 所储存的值减去指定的减量值。 | setbit key offset value | 设置offset对应二进制位上的值,返回该位上的旧值。 注意:如果offset过大,则会在中间填充0, offset最大大到多少,ffset最大2^32-1,可推出最大的的字符串为512M。 | getbit key offset | 获取值的二进制表示,对应位上的值(从左,从0编号)。 | bitop operation destkey key1 [key2 ...] | 对key1,key2..keyN作operation,并将结果保存到 destkey 上。 operation 可以是 AND 、 OR 、 NOT 、 XOR 亦或。 注意: 对于NOT操作, key不能多个。 |
List数据类型:
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 | 命令 | 说明 | lpush key value1 [value2] | 将一个或多个值插入到列表头部。 | rpush key value1 [value2] | 将一个或多个值插入到列表尾部。 | lpushx key value | 将一个值插入到已存在的列表头部。 | rpushx key value | 将一个值插入到已存在的列表尾部。 | lrange key start stop | 返回链表中[start ,stop]中的元素,规律: 左数从0开始,右数从-1开始。 | rpop key | 返回并删除链表尾元素 (弹出)。 | lpop key | 返回并删除链表头元素 (弹出)。 | lrem key count value | 从key链表中删除value值, 删除count的绝对值个value后结束,Count>0 从表头删除,Count<0 从表尾删除。 | ltrim key start stop | 剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key,如果stop 小于start 直接清空该链表。 | lindex key index | 返回index索引上的值。 | llen key | 计算链接表的元素个数。 | linsert key after|before search value | 在key链表中寻找’search’,并在search值之前|之后,插入value。 注: 一旦找到一个search后,命令就结束了,因此不会插入多个value。 | rpoplpush source dest | 把source的尾部拿出,放在dest的头部,并返回该单元值,原子性的事务操作。两个操作 rpop lpush 一个事务。 | brpop key timeout | 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 | blpop key timeout | 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 | brpopblpush source destination timeout | 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 |
Set数据类型:
Set是String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 | 命令 | 说明 | sadd key value1 value2 | 往集合key中增加元素。 | smembers key | 返回集中中所有的元素。 | scard key | 返回集合中元素的个数。 | sismember key value | 判断value是否在key集合中,是返回1,否返回0。 | smove source dest value | 把source中的value删除,并添加到dest集合中。 | srandmember key count | 返回集合key中,随机的count个元素。 | srem key value1 value2 | 删除集合中集为 value1 value2的元素,返回忽略不存在的元素后,真正删除掉的元素的个数。 | spop key | 返回并删除集合中key中1个随机元素,随机--体现了无序性。 | sinter key1 key2 key3 | 求出key1 key2 key3 三个集合中的交集,并返回。 | sinterstore dest key1 key2 key3 | 求出key1 key2 key3 三个集合中的交集,并赋给dest。 | sunionstore dest key1 key2 key3 | 求出key1 key2 key3 三个集合中的并集,并赋给dest。 | sunion key1 key2.. Keyn | 求出key1 key2 keyn的并集,并返回。 | sdiff key1 key2 key3 | 求出key1与key2 key3的差集。 | SSCAN key cursor [MATCH pattern] [COUNT count] | 迭代集合中的元素。 |
ZSet数据类型:
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员 | 命令 | 说明 | zadd key score1 member1 [score2 member2] | 向有序集合添加一个或多个成员,或者更新已存在成员的分数。 | zcard key | 获取有序集合的成员数。 | zcount key min max | 返回[min,max] 区间内元素的数量。 | zscore key member | 返回有序集中,成员的分数值。 | zrank key member | 查询member的排名(升续 0名开始)。 | zrevrank key memeber | 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序。 | zlexcount key min max | 计算有序集合中指定字典区间内成员数量。 | zrange key start stop [WITHSCORES] | 把集合排序后,返回名次[start,stop]的元素, 默认是升续排列,Withscores 是把score也打印出来。 | zrangebyscore key min max [WITHSCORES] [LIMIT] | 通过分数返回有序集合指定区间内的成员。包含使用( | zrevrangebyscore key max min [WITHSCORES] | 返回有序集中指定分数区间内的成员,分数从高到低排序。 | zrangebylex key min max [LIMIT offset count] | 通过字典区间返回有序集合的成员。 | zrevrange key start stop [WITHSCORES] | 返回有序集中指定区间内的成员,通过索引,分数从高到低。 | zrem key value1 value2 ... | 删除集合中的元素。 | zremrangebyscore key min max | 按照socre来删除元素,删除score在[min,max]之间的。 | zremrangebyrank key start end | 按排名删除元素,删除名次在[start,end]之间的。 | zremrangebylex key min max | 移除有序集合中给定的字典区间的所有成员。 | zincrby key increment member | 有序集合中对指定成员的分数加上增量 increment。 | zinterstore destination numkeys key [key ...] | 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中。 | zunionstore destination numkeys key [key ...] | 计算给定的一个或多个有序集的并集,并存储在新的 key 中。 | ZSCAN key cursor [MATCH pattern] [COUNT count] | 迭代有序集合中的元素(包括元素成员和元素分值)。 |
Hash数据类型:
命令 | 说明 | hset key field value | 把key中 filed域的值设为value,注意:如果没有field域,直接添加,如果有,则覆盖原field域的值。 | hget key field | 返回key中field域的值。 | hmset key field1 value1 [field2 value2 ... fieldn valuen] | 设置field1->N 个域, 对应的值是value1->N. | hmget key filed1 filed2 | 返回key中field1 field2 fieldN域的值。 | hsetnx key filed value | 返回key中field1 field2 fieldN域的值。 | hgetall key | 返回key中,所有字段与其值。 | hexists key filed | 查看哈希表 key 中,指定的字段是否存在。如果存在,返回 1 。 如果不存在,返回 0 。 | hdel key field [field ...] | 删除一个或多个哈希表字段 | hkeys key | 返回key中所有的field。 | hvals key | 返回key中所有的value。 | hlen key | 获取hash表中字段的数量。 | hincrby key field value | 把key中的field域的值增长整型值value。 | hincrbyfloat key field value | 把key中的field域的值增长浮点值value。 | HSCAN key cursor [MATCH pattern] [COUNT count] | 迭代哈希表中的键值对。 |
发布订阅:
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 | 命令 | 说明 | psubscribe pattern [pattern ...] | 订阅一个或多个符合给定模式的频道。即批量。 | pubsub subcommand [argument [argument ...]] | 查看订阅与发布系统状态。 | publish channel message | 将信息发送到指定的频道。 | punsubscribe [pattern [pattern ...]] | 退订所有给定模式的频道。 | subscribe channel [channel ...] | 订阅给定的一个或多个频道的信息。 | unsubscribe [channel [channel ...]] | 指退订给定的频道。 |
|