redis基础数据结构
来源:互联网 发布:linux 环境变量path 编辑:程序博客网 时间:2024/06/06 00:28
命令非常多,熟能生巧,常用每个都敲一遍。
Redis Key
DEL key [key …]
DEL 用于删除已有的键。
KEYS pattern
KEYS 查找所有符合给定模式 pattern 的 key 。
EXISTS key [key …]
EXISTS 检查给定 key 是否存在。
127.0.0.1:6379> set redis helloworldOK127.0.0.1:6379> set jedis javaclientOK127.0.0.1:6379> keys *1) "jedis"2) "redis"127.0.0.1:6379> keys *dis1) "jedis"2) "redis"127.0.0.1:6379> keys re*1) "redis"127.0.0.1:6379> exists redis jedis(integer) 2127.0.0.1:6379> exists not_this_key(integer) 0127.0.0.1:6379> del redis jedis(integer) 2127.0.0.1:6379> exists redis(integer) 0
EXPIRE key seconds /Expireat /PEXPIRE /PEXPIREAT
EXPIRE(秒)/PEXPIRE (毫秒) 用于设置 key 的过期时间。key 过期后将不再可用。 Expireat/ PEXPIREAT 以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。
127.0.0.1:6379> expire redis 10 //设置10秒(integer) 1127.0.0.1:6379> exists redis(integer) 1127.0.0.1:6379> exists redis(integer) 0127.0.0.1:6379> pexpire redis 5000 //设置5000毫秒(integer) 1127.0.0.1:6379> exists redis(integer) 1127.0.0.1:6379> exists redis(integer) 0
PERSIST key
PERSIST 用于移除给定 key 的过期时间,使得 key 永不过期。
127.0.0.1:6379> set redis helloworldOK127.0.0.1:6379> expire redis 10(integer) 1127.0.0.1:6379> persist redis(integer) 1127.0.0.1:6379> exists redis //等待20秒(integer) 1
TTL key /Pttl
TTL (秒)/Pttl (毫秒)返回 key 的剩余过期时间。
127.0.0.1:6379> ttl redis //永久时,返回-1(integer) -1127.0.0.1:6379> pttl redis(integer) -1127.0.0.1:6379> expire redis 10(integer) 1127.0.0.1:6379> ttl redis //有时间时,返回相应的生存时间(integer) 7127.0.0.1:6379> ttl redis //不存在此key时,返回-2(integer) -2
RANDOMKEY
RANDOMKEY 从当前数据库中随机返回一个 key
127.0.0.1:6379> mset key1 value1 key2 value2 key3 value3OK127.0.0.1:6379> randomkey "key1"127.0.0.1:6379> randomkey "key1"127.0.0.1:6379> randomkey "key1"127.0.0.1:6379> randomkey "key3"127.0.0.1:6379> keys *1) "key1"2) "key3"3) "key2"
Redis String
SET KEY_NAME VALUE /GET KEY/Getset
SET :用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型. GET 获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。 Getset 设置指定 key 的值,并返回 key 旧的值。
127.0.0.1:6379> set redis hellowoldOK127.0.0.1:6379> set redis exampleOK127.0.0.1:6379> get redis"example"127.0.0.1:6379> getset redis newvalue"example"
SETBIT key offset value / GETBIT key offset
SETBIT 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit) GETBIT 用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)
127.0.0.1:6379> setbit bitkey 100 1(integer) 0127.0.0.1:6379> getbit bitkey 100(integer) 1127.0.0.1:6379> getbit bitkey 100000 //未设置的默认为0(integer) 0
INCR key / INCRBY key increment /INCRBYFLOAT
INCR (Decr ) 将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 INCRBY(Decrby ) 将 key 中储存的数字值增加指定数值 INCRBYFLOAT 为 key 中所储存的值加上指定的浮点数增量值。
127.0.0.1:6379> set num 100OK127.0.0.1:6379> incr num(integer) 101127.0.0.1:6379> incrby num 20(integer) 121127.0.0.1:6379> incrbyfloat num 0.3"121.3"
APPEND key value
APPEND 命令用于为指定的 key 追加值。如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾.如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样
127.0.0.1:6379> flushdbOK127.0.0.1:6379> append newkey hello(integer) 5127.0.0.1:6379> get newkey"hello"127.0.0.1:6379> append newkey world(integer) 10127.0.0.1:6379> get newkey"helloworld"
Redis List
LPUSH key value [value …] /LPOP key/RPUSH /RPOP
LPUSH(左)/RPUSH(右) 将一个或多个值 value 插入到列表 key 的表头 LPOP(左) /RPOP (右)移除并返回列表 key 的头元素。
127.0.0.1:6379> flushdbOK127.0.0.1:6379> lpush lkey value1(integer) 1127.0.0.1:6379> lpop lkey "value1"127.0.0.1:6379> rpush lkey 1 2 3 4(integer) 4127.0.0.1:6379> rpop lkey "4"127.0.0.1:6379> lpop lkey"1"
LRANGE key start stop
LRANGE 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
127.0.0.1:6379> lrange lkey 0 -11) "2"2) "3"127.0.0.1:6379> lrange lkey 0 01) "2"
RPOPLPUSH source destination
RPOPLPUSH 在一个原子时间内,执行以下两个动作:将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。
127.0.0.1:6379> rpush rkey 1 2 3 4(integer) 4127.0.0.1:6379> lrange rkey 0 -11) "1"2) "2"3) "3"4) "4"127.0.0.1:6379> rpoplpush rkey lkey"4"127.0.0.1:6379> lrange lkey 0 -11) "4"2) "2"3) "3"127.0.0.1:6379> lrange rkey 0 -11) "1"2) "2"3) "3"
BRPOPLPUSH source destination timeout
BRPOPLPUSH 是 RPOPLPUSH 的阻塞版本,当给定列表 source 不为空时, BRPOPLPUSH 的表现和 RPOPLPUSH 一样。当列表 source 为空时, BRPOPLPUSH 命令将阻塞连接,直到等待超时,或有另一个客户端对 source 执行 LPUSH 或 RPUSH 命令为止。
127.0.0.1:6379> flushdbOK127.0.0.1:6379> lpush lkey 1 2 3 (integer) 3127.0.0.1:6379> rpoplpush lkey rkey"1"127.0.0.1:6379> rpoplpush lkey rkey"2"127.0.0.1:6379> rpoplpush lkey rkey"3"127.0.0.1:6379> rpoplpush lkey rkey(nil)127.0.0.1:6379> lpush lkey 4(integer) 1127.0.0.1:6379> rpoplpush lkey rkey"4"127.0.0.1:6379> lrange rkey 0 -11) "4"2) "3"3) "2"4) "1"
Redis Set
SADD key member [member …]/SMEMBERS key
SADD 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。 SMEMBERS 返回集合 key 中的所有成员。不存在的 key 被视为空集合。
127.0.0.1:6379> sadd skey 1 2 3 4(integer) 4127.0.0.1:6379> smembers skey 1) "1"2) "2"3) "3"4) "4"
SCARD key /SISMEMBER key member
SCARD 返回集合 key 的基数(集合中元素的数量)。 SISMEMBER 判断 member 元素是否集合 key 的成员。
127.0.0.1:6379> scard skey(integer) 4127.0.0.1:6379> sismember skey 1(integer) 1127.0.0.1:6379> sismember skey 3(integer) 1127.0.0.1:6379> sismember skey 5(integer) 0
SDIFF FIRST_KEY OTHER_KEY1..OTHER_KEYN /SINTER
SDIFF(Sdiffstore ) 命令返回给定集合之间的差集。不存在的集合 key 将视为空集。 SINTER(Sinterstore ) 命令返回给定所有给定集合的交集。 不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
127.0.0.1:6379> flushdbOK127.0.0.1:6379> sadd key1 1 2 3 4(integer) 4127.0.0.1:6379> sadd key2 3 4 5 6(integer) 4127.0.0.1:6379> sdiff key1 key2 1) "1"2) "2"127.0.0.1:6379> sdiff key2 key11) "5"2) "6"127.0.0.1:6379> sinter key1 key21) "3"2) "4"127.0.0.1:6379> sinter key2 key11) "3"2) "4"127.0.0.1:6379> Sdiffstore save key1 key2 //新建集合装填(integer) 2127.0.0.1:6379> smembers save1) "1"2) "2"
Redis Hash
HSET KEY_NAME FIELD VALUE /HGET KEY_NAME FIELD_NAME / HMSET /HMGET /HGETALL
HSET(HMSET(多个)) 于为哈希表中的字段赋值 ,如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。如果字段已经存在于哈希表中,旧值将被覆盖。 HGET(HMGET /HGETALL ) 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。
127.0.0.1:6379> flushdbOK127.0.0.1:6379> hset hkey hash 1(integer) 1127.0.0.1:6379> hmset hkey tree 2 linked 3OK127.0.0.1:6379> hget hkey hash"1"127.0.0.1:6379> hmget hkey tree linked1) "2"2) "3"127.0.0.1:6379> hget hkey null(nil)
HEXISTS KEY_NAME FIELD_NAME /HDEL
HEXISTS 命令用于查看哈希表的指定字段是否存在 HDEL 用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略
127.0.0.1:6379> hexists hkey hash(integer) 1127.0.0.1:6379> hexists hkey null(integer) 0127.0.0.1:6379> hdel hkey hash(integer) 1127.0.0.1:6379> hdel hkey hash null (integer) 0127.0.0.1:6379> hmget hkey tree linked hash1) "2"2) "3"3) (nil)127.0.0.1:6379> hdel hkey tree linked(integer) 2127.0.0.1:6379> hmget hkey tree linked hash1) (nil)2) (nil)3) (nil)
HKEYS KEY /HVALS
HKEYS 命令用于获取哈希表中的所有字段名。 HVALS 返回哈希表所有字段的值。
127.0.0.1:6379> flushdbOK127.0.0.1:6379> hmset hkey hash 1 tree 2 linked 3OK127.0.0.1:6379> hkeys hkey1) "hash"2) "tree"3) "linked"127.0.0.1:6379> hvals hkey1) "1"2) "2"3) "3"127.0.0.1:6379> hkeys null (empty list or set)127.0.0.1:6379> hvals null (empty list or set)
Redis Sorted
ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN/ZSCORE key member
ZADD 用于将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。分数值可以是整数值或双精度浮点数。如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作。当 key 存在但不是有序集类型时,返回一个错误。 ZSCORE 返回有序集中,成员的分数值。 如果成员元素不是有序集 key 的成员,或 key 不存在,返回 nil 。
127.0.0.1:6379> zadd score 95 zs 87 ls 100 ww 78 zl(integer) 4127.0.0.1:6379> zscore score zs"95"
ZRANGE key start stop [WITHSCORES]/Zrevrange
ZRANGE 返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。具有相同分数值的成员按字典序(lexicographical order )来排列。
127.0.0.1:6379> zrange score 0 -1 withscores 1) "zl"2) "78"3) "ls"4) "87"5) "zs"6) "95"7) "ww"8) "100"127.0.0.1:6379> zrange score 0 21) "zl"2) "ls"3) "zs"127.0.0.1:6379> Zrevrange score 0 -1 1) "ww"2) "zs"3) "ls"4) "zl"
阅读全文
0 0
- redis基础数据结构
- redis基础之HyperLogLog数据结构
- redis基础数据结构和数据对象
- 夯实基础:Redis 的数据结构介绍
- Redis基础、应用场景、数据结构及案例
- redis源码剖析(基础数据结构篇)——ziplist
- 《Redis设计与实现》学习笔记-基础数据结构
- redis数据结构
- Redis 数据结构
- redis数据结构
- redis数据结构
- Redis数据结构
- Redis数据结构
- Redis 数据结构
- redis 数据结构
- redis数据结构
- redis数据结构
- Redis数据结构
- DBCA创建CDB的过程
- 在线生成报表
- python2.7 import cv2 报错no module named cv2
- 给应届毕业生的九条求职建议
- 手机Android扫一扫车牌号识别的技术
- redis基础数据结构
- Android开发模式之-观察者模式
- java的Object类中的方法
- python机器学习day'3
- 一致性算法Raft详解
- 一款有bug的动画框架及核心代码的提取
- Redis学习第三节
- CNN的一些学习资料
- 【转】JVM调优总结(五)-分代垃圾回收详述1