1. Redis 键(key)
序号 命令及描述 1 DEL key该命令用于在 key 存在时删除 key。 2 DUMP key序列化给定 key ,并返回被序列化的值。 3 EXISTS key检查给定 key 是否存在。 4 EXPIRE key seconds为给定 key 设置过期时间,以秒计。 5 PEXPIRE key milliseconds设置 key 的过期时间以毫秒计。 6 KEYS pattern查找所有符合给定模式( pattern)的 key 。 7 MOVE key db将当前数据库的 key 移动到给定的数据库 db 当中。 8 PERSIST key移除 key 的过期时间,key 将持久保持。 9 PTTL key以毫秒为单位返回 key 的剩余的过期时间。 10 TTL key以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。 13 RANDOMKEY从当前数据库中随机返回一个 key 。 11 RENAME key newkey修改 key 的名称 12 RENAMENX key newkey仅当 newkey 不存在时,将 key 改名为 newkey 。 13 SCAN cursor [MATCH pattern] [COUNT count]迭代数据库中的数据库键。 14 TYPE key返回 key 所储存的值的类型。 #判断是否存在 exists name #超时过期,单位是秒 expire name 10 #查看过期时间 ttl name #移除当前的key move name 1 #查看当前key的类型 type name
2 String
#追加字符串,没有的话就新建 append name "jeames" #字符串长度 strlen name #i++ set count 0 incr count #i-- decr count #指定增量 count = count + 10 incrby count 10 #指定减量 count = count - 10 decrby count 10 #截取字符串 wangqin getrange key 0 3 "wang" #替换 setrange key 1 qq "wqqgqin" #设置过期时间 setex key 30 "hello" #不存在再设置,往往在分布式中使用,如果key1不存在就创建,存在就创建失败 setnx key1 "redis" #批量设置 mset k1 v1 k2 v2 k3 v3 #批量获取 mget k1 k2 #要么一起成功,要么一起失败,保持原子性 msetnx k1 v1 k2 v2 #先获取在写入,不存在值为nil,存在的话获取原来的值在设置新的值 getset
3.List
#将一个值或者多个值插入list的头部 127.0.0.1:6379> lpush list one (integer) 1 127.0.0.1:6379> lpush list two (integer) 2 127.0.0.1:6379> lpush list three (integer) 3 #查看list,头->尾 127.0.0.1:6379> lrange list 0 -1 2.3 Set 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> lrange list 0 1 1) "three" 2) "two" 127.0.0.1:6379> rpush list right (integer) 4 #将一个值或者多个值插入list的尾部 127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "two" 3) "one" 4) "right" #移除list第一个元素 127.0.0.1:6379> lpop list "three" 127.0.0.1:6379> lrange list 0 -1 1) "two" 2) "one" 3) "right" #移除list最后一个元素 127.0.0.1:6379> rpop list "right" 127.0.0.1:6379> lrange list 0 -1 1) "two" 2) "one" #根据下标获取值 127.0.0.1:6379> lindex list 0 #获取list长度 127.0.0.1:6379> llen list (integer) 2 127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "two" 3) "two" 4) "one" #从上至下删除一个 two 127.0.0.1:6379> lrem list 1 two (integer) 1 127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379>
4.Set
#添加Set元素 127.0.0.1:6379> sadd myset v1 v2 v3 v4 (integer) 4 #显示所有myset集合中的元素 127.0.0.1:6379> smembers myset 1) "v1" 2) "v3" 3) "v4" 4) "v2" #查询v1是否存在myset集合中,存在就返回1,不存在就返回0 127.0.0.1:6379> sismember myset v1 (integer) 1 127.0.0.1:6379> sismember myset v6 (integer) 0 127.0.0.1:6379> sadd uset k1 k2 k3 v1 (integer) 4 #合并集合myset和uset到集合set中,set重复的取一个就行 127.0.0.1:6379> sunionstore set myset uset (integer) 7 #合并显示集合myset和uset 127.0.0.1:6379> sunion myset uset 1) "v1" 2) "v3" 3) "k1" 4) "k3" 5) "v4" 6) "k2" 7) "v2" #set集合的长度 127.0.0.1:6379> scard set (integer) 6 #随机删除set中的元素 127.0.0.1:6379> spop set "v4" #移动指定的一个值到其他的集合中set->myset 127.0.0.1:6379> smove set myset k1 #两个集合的差集 127.0.0.1:6379> smembers set 1) "v3" 2) "k3" 3) "k2" 4) "v2" 127.0.0.1:6379> smembers myset 1) "v1" 2) "v3" 3) "v4" 4) "v2" 5) "k1" 127.0.0.1:6379> sdiff myset set 1) "v1" 2) "k1" 3) "v4" #两个集合的交集 127.0.0.1:6379> sinter myset set 1) "v3" 2) "v2" #两个集合的并集 127.0.0.1:6379> sunion myset set 1) "v1" 2) "v3" 3) "k1" 4) "k3" 5) "v4" 6) "k2" 7) "v2"
5.Hash(哈希)
#set一个具体的 key-value 127.0.0.1:6379> hset myhash name jeames (integer) 1 #获取一个字段值 127.0.0.1:6379> hget myhash name "wangqin" #set一组 key-value 127.0.0.1:6379> hmset myhash name wangqin1 age 18 OK #获取一组 key-value 127.0.0.1:6379> hmget myhash name age 1) "wangqin1" 2) "18" #获取全部数据 127.0.0.1:6379> hgetall myhash 1) "name" 2) "wangqin1" 3) "age" 4) "18" #删除指定的key 127.0.0.1:6379> hdel myhash name (integer) 1 127.0.0.1:6379> hgetall myhash 1) "age" 2) "18" 127.0.0.1:6379> hmset myhash name wangqin set male OK #获取hash表的字段数量 127.0.0.1:6379> hlen myhash (integer) 3 #hash表中是否存在key 127.0.0.1:6379> hexists myhash name (integer) 1 127.0.0.1:6379> hexists myhash name1 (integer) 0 #获取hash表的key 127.0.0.1:6379> hkeys myhash 1) "age" 2) "name" 3) "set" #获取hash表的值 127.0.0.1:6379> hvals myhash 1) "18" 2) "wangqin" 3) "male"
6.Zset(有序集合)
#添加zset元素 127.0.0.1:6379> zadd zset 1 one (integer) 1 #批量添加zset元素 127.0.0.1:6379> zadd zset 2 two 3 three (integer) 2 #获取zset中所有元素 2.6 geospatital(地理位置) 127.0.0.1:6379> zrange zset 0 -1 1) "one" 2) "two" 3) "three" #倒序查询 127.0.0.1:6379> zrevrange zset 0 -1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> zadd zset -1 -one (integer) 1 127.0.0.1:6379> zadd zset -2 -two (integer) 1 #正序排序,从-∞到+∞ 127.0.0.1:6379> zrangebyscore zset -inf +inf 1) "-two" 2) "-one" 3) "one" 4) "two" 5) "three" 127.0.0.1:6379> zrangebyscore zset -1 +inf 1) "-one" 2) "one" 3) "two" 4) "three" #倒序排序,从+∞到-∞ 127.0.0.1:6379> zrevrangebyscore zset +inf -1 1) "three" 2) "two" 3) "one" 4) "-one" 127.0.0.1:6379> zrem zset one (integer) 1 127.0.0.1:6379> zrange zset 0 -1 1) "-two" 2) "-one" 3) "two" 4) "three" #集合的长度 127.0.0.1:6379> zcard zset (integer) 4