Redis命令(二)

编程入门 行业动态 更新时间:2024-10-28 18:36:18

Redis<a href=https://www.elefans.com/category/jswz/34/1771323.html style=命令(二)"/>

Redis命令(二)

1). 通用命令 

  1. KEYS pattern
     
    redis> KEYS *name*
    1) "firstname"
    2) "lastname"
    redis> KEYS a??
    1) "age"
    redis> KEYS *
    1) "age"
    2) "firstname"
    3) "lastname"
    

    总结: *, ?类似于模糊匹配,*可匹配任意多个字符,?仅匹配一个字符,千万不要在大数据量下使用keys *等模糊查询的方式

  2. DEL key [key ...] 删除一个或多个key
    redis> SET key1 "Hello"
    "OK"
    redis> SET key2 "World"
    "OK"
    redis> DEL key1 key2 key3
    (integer) 2
    

    返回的是删除的key的数量 

  3. EXISTS key [key ...]  判断key是否存在
    redis> SET key1 "Hello"
    "OK"
    redis> EXISTS key1
    (integer) 1
    redis> EXISTS nosuchkey
    (integer) 0
    redis> SET key2 "World"
    "OK"
    redis> EXISTS key1 key2 nosuchkey
    (integer) 2
  4. EXPIRE key seconds [NX | XX | GT | LT]    给key设置有效期NX -- Set expiry only when the key has no expiry
    XX -- Set expiry only when the key has an existing expiry
    GT -- Set expiry only when the new expiry is greater than current one
    LT -- Set expiry only when the new expiry is less than current one
    redis> SET mykey "Hello"
    "OK"
    redis> EXPIRE mykey 10
    (integer) 1
    redis> TTL mykey
    (integer) 10
    redis> SET mykey "Hello World"
    "OK"
    redis> TTL mykey
    (integer) -1
    redis> EXPIRE mykey 10 XX
    (integer) 0
    redis> TTL mykey 
  5. TTL key 查看key的剩余有效期Starting with Redis 2.8 the return value in case of error changed:The command returns -2 if the key does not exist.The command returns -1 if the key exists but has no associated expire.
    redis> SET mykey "Hello"
    "OK"
    redis> EXPIRE mykey 10
    (integer) 1
    redis> TTL mykey
    (integer) 10
    

 五种基本数据类型:String 、List 、Hash、Set、Sortset

2) String 类型常用的命令:Get 、 Set、Mget、Mset

INCR  让一个整形的key自增1INCRBY  让一个整形的key自增并指定步长INCRBYFLOAT  让一个浮点类型的数字自增并指定步长SETNX  添加一个String类型的键值对,前提是该键不存在,否则不执行SETEX  添加一个String类型的键值对,并且指定有效期

在实际应用中,为了形成层级结构,区分相同的id值,在多个单词间用:隔开,格式如下:

项目名:业务名:类型名:id,例如:ttu:user:1

 此时,如果Value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后进行存储:

KEYVALUE
ttu:user:1{"id": 1,  "name": "pet", "age": 18}

3)Hash类型:HGet 、 HSet、HMget、HMset

HMSET myhash field1 "Hello" field2 "World"HGETALL 获取Hash类型的以Key下所有的field valueHKEYS  获取Hash类型的以Key下所有fieldHVALS  获取Hash类型的以Key下所有VALUEHINCRBY  让一个hash类型的KEY字段值自增并指定步长HSETNX  添加一个hash类型的key的field值,前提是这个field不存在,如果存在则不执行
redis> HMSET myhash field1 "Hello" field2 "World"
"OK"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HMGET myhash field1 field2 nofield
1) "Hello"
2) "World"
3) (nil)

4)List类型:与java中的LinkedList类似,可看作一个双向链表结构。

LPUSH key element [element ...]  向列表左侧插入一个或多个元素LPOP key [count]  移除并返回列表左侧的第一个元素,[count]从左弹出多少个元素,没有则返回nilRPUSH key element [element ...]  向列表右侧插入一个或多个元素RPOP key [count]  移除并返回列表右侧的第一个元素,[count]从右弹出多少个元素,没有则返回nilLRANGE key start stop 返回一段角标范围内的所有元素BLPOP key [key ...] timeout   BRPOP key [key ...] timeout  在没有元素弹出时等待指定时间,而不是直接返回nil
redis> LPUSH mylist "world"
(integer) 1
redis> LPUSH mylist "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"
redis> RPUSH mylist "one" "two" "three" "four" "five"
(integer) 5
redis> LPOP mylist
"one"
redis> LPOP mylist 2
1) "two"
2) "three"
redis> LRANGE mylist 0 -1
1) "four"
2) "five"

5)Set类型: 

SADD key member [member ...]   向set中添加一个或多个元素SREM key member [member ...]   移除set中的指定元素SCARD key   返回set中元素的个数SISMEMBER key member    判断一个元素是否存在于set中SMEMBERS key    获取set中的所有元素******************************************************************
SINTER key [key ...]  获取key之间的交集,可用于查找共同的好友等操作SDIFF key [key ...]   获取key之间的差集,可用于查找可能认识的人SUNION key [key ...]   获取key之间的并集,
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SMEMBERS myset
1) "Hello"
2) "World"

6) Sortedset:底层实现是一个跳表(SkipList)加Hash表,经常被用作排行榜

ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member...]  添加一个或多个元素到Sorted set,如果已经存在则更新其score值ZREM key member [member ...] 删除Sorted set 中的一个指定元素ZSCORE key member   获取Sorted set 中的指定元素的Score值ZRANK key member    获取Sorted set中的指定元素的排名ZCARD key           获取Sorted set中的元素的个数ZCOUNT key min max  统计Score值在给定范围内的所有元素的个数ZINCRBY key increment member   让Sorted set中的指定元素自增,步长为指定的increment值ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count][WITHSCORES]   按照Score排序后,获取指定排名范围内的元素ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]   按照Score排序后,获取指定Score范围内的元素ZDIFF numkeys key [key ...] [WITHSCORES]  求差集ZINTER numkeys key [key ...] [WEIGHTS weight [weight ...]][AGGREGATE <SUM | MIN | MAX>] [WITHSCORES]   求交集ZUNION numkeys key [key ...] [WEIGHTS weight [weight ...]][AGGREGATE <SUM | MIN | MAX>] [WITHSCORES]   求并集

这里只记录了常用的相关操作,更多操作详见redis官网。

redis官网command

更多推荐

Redis命令(二)

本文发布于:2024-02-05 08:02:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1673659.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令   Redis

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!