Redis命令总结

本文全面介绍了Redis的五种核心数据结构:字符串(String)、链表(List)、哈希(Hash)、集合(Set)及有序集合(Sorted Set),并详细讲解了每种数据结构的常用命令,适用于初学者快速掌握Redis的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis五种数据结构:

String(字符串),List(链表),hash(Hash表),set(无序集合),sorted set(有序集合)

1.Redis客户端的启动和关闭方式:

 Redis客户端启动:

1. redis-cli
2. redis-cli -p ${port}    指定redis服务器的端口(默认的是6379)
3. redis-cli -h ${ip}      指定redis服务器的ip地址
4. redis-cli -a ${password}     表示redis服务器在连接时是需要密码的,在这里指定密码
以上命令都是可以组合使用

Redis客户端关闭:

1. redis-cli shutdown
2. redis-cli -p ${port} shutdown
3. redis-cli -h ${ip} shutdown
以上命令都是可以组合使用
 
2.Redis基础命令
 
1. Redis客户端ping服务器
             ping
2. 查看Redis服务器信息:
             info
3. Redis 客户端退出:
           quit
4. 手动执行一个同步保存操作,将当前Redis实例的所有数据快照以RDB文件的形式保存到磁盘:
             save
5. 返回当前数据库的key的数量:
            dbsize
6. 切换到指定的数据库,数据库的索引号默认是0~15:
            select
7. 删除当前数据库中的所有key:
            flushdb
8. 删除所有数据库中的所有key:
            flushall
9. 列出当前数据库中所有的key:
            keys *
 
3.Redis键命令
1. 设置一个键:
            set ${key} ${value}
2. 获取某个key的value:
            get ${key}   #key如果不存在,则范湖nil
3. 删除一个键:
            del  ${key}
4. 判断某个键是否存在:
            exists  ${key}   #如果存在则返回1, 不存在则返回0
5. 查看某个键的过期信息:
            ttl ${key}    #如果返回-2 则表示该key不存在;返回-1表示该key没有过期时间;其他正整除表示该key还有多少秒过期  单位是秒
6. 查看某个key的类型:
            type ${key}   #如果key不存在,则返回none
7. 从当前库中随机获取一个key:
            randomkey
8. 为制定key设置过期时间,以秒为单位:
            expire  ${key} ${seconds}
9. 为某个key设置过期时间,时间参数是时间戳,即在某个时间点过期:
            expireat  ${key} ${timestamp}
10. 查找所有符合给定模式pattern的key:
             keys ${pattern}
11. 将当前数据库中的key移动到给定的数据库db中:
            move ${key} ${db}  #如:move song 1  将当前库中key为song移动到数据库1中,移动完之后,当前库就不存在该key了
12. 移除key的过期时间,key将永久保存:
             persist ${key}
13. 修改key的名称:
             rename ${key}  ${newKeyName}  #如果所设置的新的key名称在该库中已经存在,则会覆盖掉已经存在的key
14. 修改key的名称:
             renamenx  ${key}  ${newKeyName}  #仅当newKeyName不存在时,才将指定的key进行重命名,如果newKeyName已经存在,则会报错
 
4.Redis字符串(String)命令
1. 返回key中字符串值的子字符串:
                 getrange ${key} ${start} ${end}  #如:getrange mykey 0 3  表示获取key为mykey的字符串中0-3的字符,包括第0个和第3个元素
2. 将给定key的值设修改为newValue,并返回key的旧值:
                  getset ${key} ${newValue}
3. 同时设置一个或多个key-value对:
                  mset ${key1}  ${value1}  ${key2} ${value2}  ...  ${keyN}  ${valueN}
4. 同时设置一个或多个key-value对,当且仅当所有key都不存在时设置:
                  msetnx ${key1}  ${value1}  ${key2} ${value2}  ...  ${keyN}  ${valueN}  #该操作具有原子性,要么都成功,要么都失败
5. 只有在key不存在时,设置key的值:
                  setnx ${key} ${value}
6. 获取所有给定的key的value:
                  mget ${key1} ${key2} ...  ${keyN}
7. 设置key的值为${value},同时设置了过期时间${seconds},单位是秒:
                  setex ${key} ${seconds} ${value}
8. 和setex命令相似,只不过过期时间是以毫秒为单位:
                  psetex ${key} ${milliseconds} ${value}
9. 返回key所存储的字符串的长度:
                  strlen ${key} 
10. 将key中存储的数值增1,注意这里key中存储的value必须是Integer类型的。否则会报错:
                  incr ${key} 
11. 将key中存储的数值增加指定步长,${increment}为步长,注意这里key中存储的value必须是Integer类型的。否则会报错:
                  incrby ${key} ${increment} 
12. 将key中存储的数值减1,注意这里key中存储的value必须是Integer类型的。否则会报错:
                  decr ${key} 
13. 将key中存储的数值减掉指定步长,${increment}为步长,注意这里key中存储的value必须是Integer类型的。否则会报错:
                  decrby ${key} ${increment} 
14. 如果key已经存在,且 是一个字符串,则在该key的value的末尾追加上${value}字符串:
                  append ${key} ${value} 
 
5.Redis哈希(Hash)命令
Redis hash 是一个string类型的field和value的映射表,其实就相当于Java中的map,hash特别适合用于存储对象。
1. 将hash表key中的字段${field}的值设置为${value}:
                  hset ${key} ${field}  ${value}
2. 只有在字段${field}不存在时,才设置hash表字段的值:
                  hsetnx ${key} ${field}  ${value}
3. 同时将多个field-value对设置到哈希表key中:
                 hmset ${key} ${field1}  ${value1}  ${field2} ${value2} ... ${fieldN}  ${valueN}
4. 获取存储在哈希表中指定字段的值:
                 hget ${key} ${field}
5. 获取所有给定字段的值:
                hmget ${key} ${field1}  ${field2} ...  ${fieldN}
6. 获取在哈希表中指定key的所有字段和值:
                hgetall ${key} 
7. 获取指定hash表中所有的字段:
                hkeys ${key}
8. 获取指定hash表中所有的值:
                hvals ${key}  
9. 获取指定hash表中字段的数量:
              hlen ${key} 
10. 删除一个或多个hash字段:
              hdel ${key}  ${field1}  ${field2} ...  ${fieldN}
11. 查看hash表key中指定的字段是否存在:
              hexists ${key}  ${field} 
12. 为hash表key中指定字段的整数值加上增量${increment}:
              hincrby ${key}   ${field}   ${increment} 
13. 为hash表key中指定字段的浮点数值加上增量${increment}:
              hincrbyfloat ${key}   ${field}   ${increment} 
 
6.Redis链表(List)命令
Redis列表是简单的字符串列表,按照插入顺序排序,是可以放入重复值的。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
 
1. 将一个或多个值插入到列表头部(最左端L):
                   lpush ${key}   ${value1}  ${value2} ...  ${valueN}
2. 将一个值插入到已存在的列表头部,列表不存在时操作无效:
                   lpushx ${key}   ${value} 
3. 将一个或多个值插入到列表尾部(最右端 R):
                  rpush ${key}   ${value1}  ${value2} ...  ${ valueN }
4. 将一个值插入到已存在的列表尾部,列表不存在时操作无效:
                  rpushx ${key}   ${value} 
5. 移出并获取列表的第一个元素,返回值是移出的元素:
                lpop ${key} 
6. 移出并获取列表的最后一个元素,返回值是移出的元素:
                 rpop ${key} 
7. 用于移除源列表中的尾部的元素,并将该元素添加到目的列表的头部,返回的是被移动的元素:
                rpoplpush ${source}  ${destination} 
8. 获取列表长度:
                 llen ${key}
9. 通过索引获取列表中的元素:
                 lindex ${key} ${index}
10. 通过索引设置列表中的元素
                lset ${key} ${index}  ${value}
11. 获取列表中指定范围内的元素:
                lrange ${key} ${startIndex}   ${endIndex}
 
7.Redis集合(Set)命令
  Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
1. 向集合中添加一个或多个元素:
                   sadd ${key}   ${member1}  ${ member2 } ...  ${ memberN }
2. 获取集合的成员数:
                   scard ${key} 
3. 返回给定所有集合的差集:
                  sdiff ${firstKey}   ${otherKey1 } ...  ${ otherKeyN }  # 差集的结果来自前面的 firstKey ,而不是后面的 otherKey1 ,也不是整个 firstKey  otherKey1 .. otherKeyn 的差集。
                                                                                                                            如: key1 = { a , b , c , d } key2 = { c } key3 = { a , c , e } 那么: SDIFF key1 key2 key3 = { b , d }
4. 将给定集合之间的差集存储到指定的集合中去,如果指定的集合key已经存在,则将其覆盖:
                  sdiffstore ${destination} ${firstKey}   ${otherKey1 } ...  ${ otherKeyN }
5. 返回给定所有集合的交集,不存在的集合key被视为空集:
                sinter ${key}   ${key1} ...  ${keyN}
6. 将给定集合之间的交集存储在指定的集合中,如果指定的集合已经存在,则将其覆盖:
                sinterstore ${destination}  ${key}   ${key1} ...  ${keyN}
7. 判断member元素是否在集合key中:
                  sismember ${key}  ${member} 
8. 返回集合中的所有成员:
                  smembers ${key}
9. 将member元素从source集合中移动到destination集合中去:
                  smove ${source} ${ destination } ${member}
10. 移除并返回集合中的一个随机元素:
                spop ${key}
11. 移除集合中一个或多个元素:
                srem ${key} ${ member1}  ${ member2} ...  ${ memberN}
12. 返回所有给定集合的并集:
                sunion  ${key}   ${key1} ...  ${keyN}
13. 所有给定集合的并集存储到destination集合中去:
                sunionstore  ${destination}  ${key}   ${key1} ...  ${keyN}
 
8.Redis有序集合(Sorted Set)命令
  Redis 有序集合和集合一样也是string类型元素的集合, 且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。
1. 向有序集合中添加一个或多个成员,或者更新已经存在成员的分数:
                   zadd ${key}   ${score1}  ${member1}  ${score2}  ${ member2 } ...  ${scoreN}  ${ memberN }
2. 获取有序集合的成员数:
                   zcard ${key} 
3. 计算在有序集合中指定区间分数的成员数:
                  zcount ${key}   ${min }   ${max }  #  返回分数值在 min 和 max之间的成员的数量
4. 返回有序集合中指定元素的score:
                  zscore  ${key}   ${ member
5. 通过索引区间返回有序集合指定区间内的成员:
                zrange ${key}   ${startIndex}   ${endIndex}  [withscores]  #  [withscores] 是可选的,表示是否显示分数
6. 返回有序集合中指定成员的索引:
                 zrank ${key}   ${ member
7. 有序集合中对指定成员的分数加上增量increment:
                  zincrby ${key}   ${increment }   ${ member
 
 
 
 

转载于:https://my.oschina.net/Declan/blog/2991530

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值