分布式架构之redis 常用命令

一、注意事项

  • 最好使用统一的规范来设计Key,比如”object-type:id:attr”,以这一规范设计出的Key可能是”user:99″或”comment:22:reply-to”,增强可读性

  • 不要使用过长的Key。例如使用一个1024字节的key就不是一个好主意,不仅会消耗更多的内存,还会导致查找的效率降低。Redis允许的最大Key长度是512MB(对Value的长度限制也是512MB)

二、命令

0、共用

  • help :查看帮助
  • redis-cli -h 127.0.0.1 -p 6379 -a "password":客户端连接,-a后面是密码(连接加上 --raw 就不会看到中文乱码)
  • auth "password":连接时没输入密码,用 auth命令验证
  • quit:退出连接
  • keys {pattern}:阻塞的匹配key,pattern可以是*,+,?等模式,如 keys he*
  • scan cursor [MATCH pattern] [COUNT count]:无阻塞的匹配key,如 scan 0 match hello* count 20
  • del {key}:删除key,多个key用空格隔开,如 del test1 test2
  • exists {key}:判断key是否存在,多个key用空格隔开,如 exists test1 test2
  • expire/pexpire {key} {seconds}:给key设置过期时间,秒/毫秒为单位
  • persist {key}:移除key的过期时间,所以key将持久
  • ttl/pttl {key}:返回key剩余生存时间,秒/毫秒为单位
  • type {key}:返回key所存储值类型
  • object encoding {key}:返回底层存储类型
  • rename {key} {newkey}:key改名为newkey
  • ./redis-server ../redis.conf:启动(需要在 src目录下)
  • ./redis-cli:连接客户端 (需要在 src目录下)
  • ./redis-cli shutdown:停止服务 (需要在 src目录下,如果连着redis,则可以直接 shutdown),它会执行几个步骤有 停止所有客户端、执行save、如果开了AOF 就更新AOF文件、最后关闭服务
  • info:查看配置信息
  • memory usage 'key_name'

1、登录:如果设置了密码用auth登录,也可以在启动客户端的时候加参数 -a

  • auth {yourpassword} :登录
  • redis-cli -p 6379 -a {yourpassword}:连接时登录

2、设置密码和查看密码,设置用 config set ,查看用 config get(需登录后才能看)

  • config set requirepass {yourpassword}
  • config get requirepass
  • config rewrite

3、string操作:set、get、getset、mset、mget、msetnx、decr、incr

  • set {key} {value} :为一个key设置值如 set name "lin" ,如果有参数放后面,如 set name "lin" EX 20
  • get {key}:取出对应 key 的值如 get name
  • getset {key} {value}:设置key对应的值,并返回原有的值若原没有则返回nil,如 getset name "newlin"
  • mset {key} {value} {key} {value}:同时为多个key设置值,如 mset user1 "h" user2 "l"
  • mget {key} {key}:同时取多个key的值,如 mget user1 user2
  • msetnx {key} {value} {key} {value}:同时为多个key设置值,但如果有一个key已经存在redis里,则此句命令不操作,类似回滚,如 msetnx user3 "f" user4 "j"
  • incr {key}:把key对应的值自增1,返回自增后的值,只对能转换为整型的数据有作用,如 incr num
  • decr {key}:把key对应的值自减1,返回自减后的值,只对能转换为整型的数据有作用,如 decr num
  • incrby {key} {val}:把key对应的值增加val,返回自增后的值,只对能转换为整型的数据有作用,如 incrby num 10
  • decrby {key} {val}:把key对应的值增加val,返回自增后的值,只对能转换为整型的数据有作用,如 incr num 10

4、hash操作:hset、hget、hmset、hmget、hsetnx、hexists、hdel、hincrby、hgetall、hkeys、hvals

  • hmset/hset {key} {field1} {value1} {field2} {value2} :为一个hashkey多个属性一次性设置值如 hmset hsname id 1 name "bb"
  • hget {key} {field1} :取出对应 hashkey 的单个属性值如 hget hsname id
  • hmget {key} {field1} {field2} :取出对应 hashkey 的多个属性值如 hmget hsname id name
  • hsetnx {key} {field1} {value}:为一个hashkey一个属性设置值,但如果属性已经存在,则此句命令不操作,类似回滚,如 hsetnx hsname  id 2
  • hexists {key} {field1} :判断该hashkey中的属性是否存在,在返回1,不在返回0,如 hexists hsname id
  • hdel {key} {field1} {field2} :删除指定hashkey的一个或者多个属性,如 hdel hsname id name
  • hincrby {key} {field1} {val}:把指定hashkey的属性对应的值增加指定数量,返回自增后的值,只对能转换为整型的数据有作用,如 hincrby hsname id 20
  • hgetall {key}:返回指定hashkey所有的field-value对,结果是数组,属性和值交替出现,如 hgetall hsname
  • hkeys {key}:返回指定hashkey所有的field,如 hkeys hsname
  • hvals {key}:返回指定hashkey所有的value,如 hvals hsname

5、list操作:lpush、rpush、lpop、rpop、lpushx、rpushx、llen、lrange、lindex、lset、linsert

  • lpush {key} {value} {value2}:指定List的左侧(即头部)插入1个或多个元素,返回插入后的List长度如 lpush lname "a" "b"
  • rpush {key} {value} {value2}:指定List的右侧(即尾部)插入1个或多个元素,返回插入后的List长度如 rpush lname "a" "b"
  • lpop {key}:从指定List的左侧(即头部)移除一个元素并返回如 lpop lname
  • rpop {key}:从指定List的右侧(即尾部)移除1个元素并返回,如  rpop lname
  • lpushx {key} {value} {value2} :指定List的左侧(即头部)插入1个或多个元素,返回插入后的List长度但如果key不存在不会自动创建,如 lpushx lname "a" "b"
  • rpushx {key} {value} {value2} :指定List的右侧(即尾部)插入1个或多个元素,返回插入后的List长度但如果key不存在不会自动创建,如 rpushx lname "a" "b"
  • llen {key}:返回指定List的长度,如 llen lname
  • lrange {key} {start} {stop}:返回指定List中指定范围的元素,返回0到10下标的11个元素如 lrange lname 0 10
  • lindex {key} {index}:返回指定List指定index上的元素,如果index越界,返回nil。index数值是回环的,即-1代表List最后一个位置,-2代表List倒数第二个位置,如 lindex lname 1
  • lset {key} {index} {value} :将指定List指定index上的元素设置为value,如果index越界则返回错误,如 lset lname 1 "c"
  • linsert {key} {before|after} {ovalue} {value} :向指定List中指定元素(某一值,不能写下标)之前/之后插入一个新元素,并返回操作后的List长度。如果指定的元素不存在,返回-1,如 linsert lname before "a" "d"

6、set操作:sadd、spop、srem、scard、srandmember、sismember、smove、smembers、sunion/sunionstore、sinter/sinterstore、sdiff/sdiffstore

  • sadd {key} {value} {value2}:向指定Set中添加1个或多个member,如果指定Set不存在,会自动创建一个,set不重复所以已有的值不会再添加如 sadd sname "a" "b"
  • spop {key} {count}:从指定Set中随机移除并返回count个member如 spop sname 2
  • srem {key} {value} {value2}:从指定Set中移除1个或多个member如 srem sname "a" "b"
  • scard {key}:返回指定Set中的member个数,如  scard sname
  • srandmember {key} {count} :从指定Set中随机返回1个或多个member如 srandmember sname 2
  • sismember {key} {value} :判断指定的value是否存在于指定Set中,如 sismember sname "a"
  • smove {source} {destination} {value}:将指定member从一个Set移至另一个Set,如 smove sname tname "a"
  • smembers {key}:返回指定Hash中所有的member如 smembers sname
  • sunion/sunionstore {key} {key2}:计算多个Set的并集并返回,如 sunion sname tname ,sunionstore 是将后面几个 set的数据存储至 sunionstore紧跟的 set中
  • sinter/sinterstore {key} {key2} :计算多个Set的交集并返回,/号后面的指令是存储至这几个Set中,如 sinter sname tname,sinterstore 将后面几个 set的数据存储至 sinterstore 紧跟的 set中
  • sdiff/sdiffstore {key} {key2} :计算1个Set与1或多个Set的差集并返回,/号后面的指令是存储至这几个Set中,如 sdiff sname tname,sdiffstore 将后面几个 set的数据存储至 sdiffstore 紧跟的 set中

7、zset(sorted set)操作:zadd、zcount、zrem、zcard、zscore、zrank/zrevrank、zincrby、zrange/zrevrange、zrangebyscore/zrevrangebyscore、zremrangebyrank/zremrangebyscore

  • zadd {key} {score1} {value1} {score2} {value2}:向指定Sorted Set中添加1个或多个member如 zadd zname 1 "a" 2 "b"
  • zcount {key} {scorestart} {scorestop}:返回指定Sorted Set中指定score范围内的member数量如 zcount zname 1 2
  • zrem {key} {value} {value2}:从指定Sorted Set中删除1个或多个member如 zrem zname "a" "b"
  • zcard {key}:返回指定Sorted Set中的member数量,如  zcard zname
  • zscore {key} {value} :返回指定Sorted Set中指定member的score如 zscore zname "a"
  • zrank/zrevrank {key} {value} :返回指定member在Sorted Set中的排名,ZRANK返回按升序排序的排名,ZREVRANK则返回按降序排序的排名,如 zrank zname"a"
  • zincrby {key} {val} {value}:对指定Sorted Set中的指定member的score进行自增,如 zincrby zname 1 "a"
  • zrange/zrevrange {key} {start} {stop}:返回指定Sorted Set中指定排名范围内的所有member,ZRANGE为按score升序排序,ZREVRANGE为按score降序排序。如 zrange zname 0 1
  • zrangebyscore/zrevrangebyscore {key} {scorestart} {scorestop}:返回指定Sorted Set中指定score范围内的所有member,返回结果以升序/降序排序,min和max可以指定为-inf和+inf,代表返回所有的member,如 zrangebyscore zname 0 1
  • zremrangebyrank/zremrangebyscore {key} {scorestart} {scorestop} :移除Sorted Set中指定排名范围/指定score范围内的所有member,如 zremrangebyrank zname 0 1

8、发布订阅:subscribe、publish

  • subscribe {key} :创建一个订阅频道并监听,如 subscribe redis
  • publish {key} {message}:发布消息,如 publish redis "your message"

9、事务:multi、discard、exec、watch、unwatch

详看官网:

Commands | Redis

Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值