超级详细的redis命令大全

    xiaoxiao2023-10-25  67

    常用命令

    启动 redis-server

    关闭 redis-cli

    回复命令

    整数回复 dbsize

    字符串回复 keys * ,set xx xx

     

    redis 配置文件

    动态设置

    redis-server --port 1234

    redis-cli -h -localhost 1234

    redis-server redis.config

    CONFIG GET name:

    config get loglevel

    CONFIG SET loglevel

    配置文件选项

    port 6379 默认端口

    bind 127.0.0.1 默认主机地址

    timeout 0 多少秒后自动关闭连接,0代表没有设置此选项

    loglevel notice 日志级别 debug verbose notic warning

    logfile "" 日志的记录方式,默认标准输出stdout,

    databases 16 默认数据库数量16个,默认为0

    select 0

    快照

    save <second> <changes> 多少秒有多少次改变将数据同步到磁盘里

    save 900 1

    save 300 10

    rdbccompression yes 存储本地数据库是是否启用压缩 , 默认yes

    dbfilename dump.rdb 指定本地数据库的文件名,默认为dump.rdb

    dir ./ 指定本地数据库的存放目录,默认是当前目录

    redis数据类型

    String类型

    一个健最多存储512MB

    1)SET key value [EX seconds][PX millisecond ] 设置key对应的value,

    可选项:

    ex seconds 设置key的过期时间

    px millisecond 以毫秒设置过期时间

    nx 只有键不存在的时候才可以设置成功

    xx 只有键存在时才可以设置成功

    如果key存在同名会产生覆盖

    如果ex和px同时出现,后面的会覆盖前面的

    set str ‘test’

    2)GET key 根据key找到对应的值

    key不存在返回nil

     

    3)GETRANGE key start end 字符截取

    4)GETSET 设置指定key的值,并返回原来的值,原来的值不存在返回nil

    5)MSET key value key value。。。 一次设置多个

    6)MGET key key key 一次获得多个

    7)STRLEN key 获取字符串长度

    8)SETRANGE key offset value 字符串替换

    如果设置的原来的字符串长度比设置的小,就以零字节(/x00)来填充

    9) SETNX key value 仅当key不存在时成功

    10) SETEX key seconds value 设置key并且设置过期时间,单为为秒,原子操作

    相当于执行 set key value ,并对这个key设置了过期时间 expire key seconds

    setex exstr 10 ‘test’,对相同key进行设置会产生覆盖

    11)TTL key 获取key的生命周期,PTTL毫秒

    12)MSETNXMSET同理多个

    13)PSETEX key milliseconds value 以毫秒为单为设置key的生命周期

    14)INCR key 对key中存储的数字加1,key存储的要为数字

    如果key不存在,会先初始化为0,再执行incr

    15)INCRBY 将key中存储的数字加上指定增量

    INCRBY increment

    16)INCRBYFLOAT 给key中存储的数字加上浮点数

    17)DECR key 减法

    18)APPEND key value通过apend将值追加到字符串的末尾

    如果key不存在,将value set进去

     

     

    Hash类型

    1) HSET 将哈希表key中域field设置成指定的value

    HSET key field value,如果存在重新复制

    2)HGET 返回哈希表中field对应的值

    HGET key field,如果key不存在返回nil

    3)HSETNX 如果不存在设置

    如果field存在操作无效,返回0

    4)HMSET key 设置多个field

    5)HMGET 一次获得哈希表key中多个field值

    如果字段field不存在返回nil

    6)HGETALL 返回哈希表key中所有的域和值

    HGETALL key

    7)HKEYS 返回hash中key对应的所有域

    8)HVALS 返回hash表中所有field对应的值

    hvals key

    9)HLEN key 返回hash表feild的数量

    10)HINCRBY key field value 对key的field增量操作,存储的是数值才可以

    11)HINCRBYFLOAT key field value 增量可以为浮点型

    12)HDEL 删除hash中key的指定域

    hdel key field field

     

    List类型

    1)LPUSH 向列表的左端添加元素,可以添加多个

    LPUSH key value1 value2,如果不存在先创建

    2)RPUSH 向列表右端添加元素,可添加多个

    RPUSH key value1 value2

    3)LPUSHX 向头部添加一个值,不能添加多个,只有存在才添加

    4)LPOP弹出列表左边的元素

    5)RPOP弹出列表右边的元素

    6)LLEN 得到列表的长度

    7)LRANGE 获取列表片段

    LRANGE key start stop

    LRANGE key 0 -1 从0到最后一个

    如果起始点超出下表会无返回

    8)LREM 删除列表中指定的值

    LREM key count value

    count>0:从列表的头部开始向尾部搜索,移除与value相等的元素,移除count个

    count<0:从列表的尾部开始头部搜索,移除与value相等的元素,移除count个

    count=0:移除列表中所有与value值相等的值

    LREM list2 2 a

    9)LINDEX 获得指定索引元素的zhi

    LINDEX key index

    LINDEX list2 3

    10)LSET设置指定索引元素的值

    LSET key index value

    11)LTRIM 只保留列表的片段

    LTRIM key start stop

    12)LINSERT 向列表插入元素

    LINSERT key BEFORE|AFTER privot value

    LINSERT key BEFORE 'f' 'c'

    如果key不存在返回-1,空列表操作返回0

    13)RPOPLPUSH 将元素从一个列表转到另一个列表

    RPOPLPUSH source destination

    14)BLPOP BLPOP是LPOP的阻塞版本

    BLPOP key key key... timeout

    BLPOP list1 list2 list3 0,0表示一直阻塞,如果list都为空,则会一直阻塞直到list中有值

    Set集合类型

    无序集合

    1)SADD 向集合中添加元素

    SADD key numer[,....]

    如果key不存在,先创建,成功返回添加成功个数,不成功返回0

    不能添加重复的元素

    2)SMEMBERS 返回指定集合中的元素

    SMEMBERS key

    3)SISMEMBER 检测value是否是集合中的成员

    SISMEMBER key value

    4)SREM 删除集合中的元素

    SREM key value

    5)SPOP 删除并返回集合中的随机元素

    SPOP key

    6)SRANDMAMER随机返回集合中的元素

    SRANDMUMBER key count count表示返回多少个

    count小于0返回一个数组,数组中成员可能出现重复,数组的长度是count取绝对值

    7)SDIFF 返回集合的差集

    SDIFF key...

    8)SINTER: 返回集合间的交集

    SINTER key key..

    9)SUNION 返回集合的并集

    SUNION key...

    10)SCARD 返回集合中元素个数

    SCARD key

    11)SDIFFSTORE 将差集结果保存到指定集合中

    SDIFFSTORE destination key key....

    如果目标集合存在,产生覆盖

    12)SINTERSTORE 将交集的结果保存在指定集合中

    SINTERSTORE destination key key...

    13) SUNIONSTORE 将并集结果保存到指定集合中

    SUNIONSTORE destination key

    14)SMOVE 将集合中的元素移动到另一个集合中

    SMOVE source destination member (原子操作)

     

    Zset有序集合类型

    散列表和跳跃列表,比set更耗内存

    1)ZADD 将元素及其分数添加到集合中

    ZADD key score member [score member]

    如果成功返回新添加成员的数量,不返回更新的及存在的成员变量,成员不能存在重复

    ZADD score 100 wency 78 tutu

    返回(integer) 2

    2)ZSCORE 获得指定元素的分数

    3)ZRANGE 按照元素分数从小到大的顺序反回指定索引start到stop之间的所有元素(包含两端)

    ZRANGE key start stop

    ZRANGE score 0 -1

    ZRANGE score 0 100

    ZRANGE score 0 2 WITHSCORES 返回带分数

    注意:当两个元素的分数相同的时候,redis在排序的时候按照元素名称的字典顺序排序,如果使用的是中文(utf-8)的方式,同样按照字典顺序排列

    4)ZREVRANGE 按照分数从大到小的顺序

    ZREVRANGE start stop 【WITHSORES】

    5)ZRANGEBYSCORE 获得指定分数范围内的元素 按照分数从小到大的顺序

    ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

    ZRANGEBYSCORE score (80 (90 (代表不包含端点

    ZRANGEBYSCORE score 90 +inf +inf 代表无穷大,-inf代表负无穷

    ZRANGEBYSCORE score 90 +inf limit 0 1

    6)ZREVRANGEBYSCORE 指定分数范围内的元素,按从大到小的顺序

    ZRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

    7)ZINCRBY 操作某个元素的分数,返回增加操作之后的分数

    ZINCYBY score 5 test1

    ZINCTBY score -5 test1

    8)ZCARD 获得集合中元素的数量

    ZCARD score

    9)ZCOUNT 获得指定分数内的元素的数量

    ZCOUNT key min max

    10)ZREM 删除一个或多个元素,返回删除元素的个数

    ZREM key member 。。

    11)ZREMRANGEBYRANK 按照排名范围删除元素

    ZRAMRANGEBYRANK key start stop

    12)ZREMRANGBYSCORE 按照分数范围删除元素

    ZREMRANGEBYSCORE testRem 0 7

    13)ZRANK 获得指定元素的排名,根据分数从小到大的顺序

    ZRANK key member

    14)ZREVRANK 获得指定的排名,根据分数从大到小的顺序

    ZREVRANK key member

    15)ZINTERSTORE 计算有序集合的交集,并将结果保存起来

    ZINTERSTORE destination numberkeys [WEIGHTS weight ...](每个集合后面的权重)[AGGREGATE SUM | MIN | MAX ](默认求合)

    127.0.0.1:6379> ZADD testStore1 1 a 2 b 3 c

    (integer) 3

    127.0.0.1:6379> ZADD testStore2 10 a 2 b 20 c

    (integer) 3

    127.0.0.1:6379> ZINTERSTORE testStore 2 testStore1 testStore2

    (integer) 3

    127.0.0.1:6379> ZRANGE testStore 0 -1 WITHSCORES

    1) "b"

    2) "4"

    3) "a"

    4) "11"

    5) "c"

    6) "23"

    ZINTERSTORE testStore 2 testStore1 testStore2 WEIGHTS 1 0.1 AGGREGATE MAX

    16)ZUNIONSTORE 计算有序集合的并集,将结果保存起来

    ZUNIONSTORE destination numberkeys [WEIGHTS weight ...][AGGREGATE SUM | MIN | MAX ](默认求合)

    和keys相关的命令

    1)keys patten 返回所有匹配模式的key

    keys * 任意字符

    ? 匹配一个任意

    [] 匹配[]之间的内容 eg:[a-b]

    \x 匹配特殊字符 eg:\? ,\*

    2) exists key

    3)type key

    4)EXPIRE key seconds 设置key的过期时间

    EXPIRE key timestamp

    5)PEXPIRE key millisecond 以毫秒设置过期时间

    6)TTL以秒为单位 PTTL以毫秒为单位返回剩余时间

    TTL key PTTL key 如果键没有设置过期返回-1,key不存在返回-2

    7)PERSIST 将带有过期时间的key转变成永久key

    8)DEL 删除指定的key,可以删除多个

    DEL key key

    9)REMENDKEY 随机返回当前数据库中的一个key

    10)RENANE 重命名一个key

    RENAME key value

    11)RENAMENX 必须重命名一个不存在的名称才会生效

    12)DUMP 序列化给定的key,返回序列化之后的值

    DUMP key

    13)RESTORE 反序列化

    RESTORE key ttl value

    restore key 0 "\x00\x0ethis is a test\x06\x00f\x97\x10\x8bo\xb5\x91\xf8"

    14)MOVE 将当前数据库中的key移动到另外的数据库中

    MOVE key dbname

    当移动一个不存在的key会失败

    当目标数据库存在同名的key时会失败

     

    最新回复(0)