Redis实用指令(一)

这篇博客主要介绍了Redis的一些实用指令,包括APPEND、AUTH、CLIENT系列命令、COMMAND、CONFIG系列、DBSIZE、DECR系列、DEL、DUMP与RESTORE、ECHO、EXISTS系列、EXPIRE系列、FLUSH系列、SELECT、GEO系列、GET系列以及GETRANGE和GETSET等。通过这些命令,读者可以更好地理解和操作Redis数据库。
摘要由CSDN通过智能技术生成

今天看Redis官网指令的时候感觉其中很多有可能被我这种非专业人员用到,或者感觉对我很有用,这里简单记录下,直接在redis-cli中使用。

APPEND key value

redis> EXISTS mykey
(integer) 0
redis> APPEND mykey "Hello"
(integer) 5
redis> APPEND mykey " World"
(integer) 11
redis> GET mykey
"Hello World"
redis>

AUTH password:用来验证redis登录密码的
CLIENT LIST :Redis CLIENT LIST命令用于返回所有连接到服务器的客户端信息和统计数据。
CLIENT GETNAME:返回连接名字或者空(没有设置名字时)。
CLIENT SETNAME connection-name设置当前连接的名字。
COMMAND:返回redis下所有指令(ssh的shell页面可能显示不全)。
COMMAND INFO command-name [command-name …]:查看具体指令的信息。

command:(这里列出最后两个个)
173) 1) "geodist"
     2) (integer) -4
     3) 1) readonly
     4) (integer) 1
     5) (integer) 1
     6) (integer) 1
174) 1) "srandmember"
     2) (integer) -2
     3) 1) readonly
        2) random
     4) (integer) 1
     5) (integer) 1
     6) (integer) 1

使用command info指令查看command未显示的信息

127.0.0.1:6379> command info  mget
1) 1) "mget"
   2) (integer) -2
   3) 1) readonly
   4) (integer) 1
   5) (integer) -1
   6) (integer) 1
127.0.0.1:6379> 

此指令后可以跟一个指令也可以跟多个,如

command info  mget get set

CONFIG GET parameter:获取redis的配置信息。
使用config get *可以查看所有配置信息(这些信息都是redis支持的配置参数):

127.0.0.1:6379> config get *
  1) "dbfilename"
  2) "root"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) ""
 11) "pidfile"
 12) "/var/run/redis_6379.pid"
 13) "slave-announce-ip"
 14) ""
.......
.......

其中单数行为字段名称,双数行为配置的信息,”“表示未配置或配置为”“.
也可以单独查看某一个配置信息:

127.0.0.1:6379> config get appendonly
1) "appendonly"
2) "yes"

这里有个很牛逼的功能,模糊查寻某些配置信息:

redis> config get *max-*-entries*
1) "hash-max-zipmap-entries"
2) "512"
3) "list-max-ziplist-entries"
4) "512"
5) "set-max-intset-entries"
6) "512"

使用config get re*可以查看以re开头的配置。

CONFIG SET parameter value:改变配置参数值。
CONFIG REWRITE:重写config中的参数值(把set的值写入config中)。

127.0.0.1:6379> CONFIG GET appendonly           # appendonly 处于关闭状态
1) "appendonly"
2) "no"
127.0.0.1:6379> CONFIG SET appendonly yes       # 打开 appendonly
OK
127.0.0.1:6379> CONFIG GET appendonly
1) "appendonly"
2) "yes"
127.0.0.1:6379> CONFIG REWRITE                  # 将 appendonly 的修改写入到 redis.conf 中

CONFIG RESETSTAT:重置INFO命令统计里面的一些计算器。
被重置的数据如下:

Keyspace hits
Keyspace misses
Number of commands processed
Number of connections received
Number of expired keys

重置前可以通过info查看信息,之后使用CONFIG RESETSTAT重置信息。

DBSIZE :返回当前数据里面keys的数量。
DECR key:对key对应的数字做减1操作。返回值:数字,减小之后的value。

redis> SET mykey "10"
OK
redis> DECR mykey
(integer) 9
redis> SET mykey "234293482390480948029348230948"
OK
redis> DECR mykey
ERR value is not an integer or out of range
redis> 

DECRBY key :减少指定的整数。
这是个很有意思也很实用的功能,可以减少指定的数字,如果给的数字是负数就可以做加操作。

127.0.0.1:6379> set intkey 256
OK
127.0.0.1:6379> decrby intkey 5
(integer) 251
127.0.0.1:6379> decrby intkey -20
(integer) 271
127.0.0.1:6379> decrby intkey 500
(integer) -229

DEL key:删除一个或多个key.(官网上给的是删除一个key,实际可以批量操作,而且给的例子也是删除多个)
DUMP key:对指定的key序列化。
RESTORE key ttl serialized-value [REPLACE]:对dump后的值反序列化。
DUMP 与RESTORE是一对组合

# 创建一个键,作为 DUMP 命令的输入

redis> SET greeting "hello, dumping world!"
OK

redis> DUMP greeting
"\x00\x15hello, dumping world!\x06\x00E\xa0Z\x82\xd8r\xc1\xde"

# 将序列化数据 RESTORE 到另一个键上面

redis> RESTORE greeting-again 0 "\x00\x15hello, dumping world!\x06\x00E\xa0Z\x82\xd8r\xc1\xde"
OK

redis> GET greeting-again
"hello, dumping world!"

# 在没有给定 REPLACE 选项的情况下,再次尝试反序列化到同一个键,失败

redis> RESTORE greeting-again 0 "\x00\x15hello, dumping world!\x06\x00E\xa0Z\x82\xd8r\xc1\xde"
(error) ERR Target key name is busy.

# 给定 REPLACE 选项,对同一个键进行反序列化成功

redis> RESTORE greeting-again 0 "\x00\x15hello, dumping world!\x06\x00E\xa0Z\x82\xd8r\xc1\xde" REPLACE
OK
# 尝试使用无效的值进行反序列化,出错

redis> RESTORE fake-message 0 "hello moto moto blah blah"
(error) ERR DUMP payload version or checksum are wrong

ECHO message:显示输入的字符串。

redis> ECHO HelloWorld!
HelloWorld!
redis>

EXISTS key [key …]:检查给定的key是否存在。
这里感觉官网上给的也不太好,从指令上看是可以同时检测多个key,但是官网给的例子和数据都是偏向于单个key的操作的。
我操作的有多个key:

127.0.0.1:6379> exists key1 key2 key3
(integer) 3
127.0.0.1:6379> exists key1 key2 key30
(integer) 2
127.0.0.1:6379>

这里判断的应该是有多少key返回的整数就是几,如果没有就是0。
EXPIRE key seconds:设置key的有效时间,单位为秒。
EXPIREAT key timestamp:设置有效时间,单位为unix时间戳。

FLUSHALL:清空所有数据库,该Redis下所有库的数据都会被清空。如:db0,db1,db2…..
FLUSHDB:清空当前数据库。FLUSHALL和FLUSHDB都有个特殊说明,一旦执行,就不会失败。
SELECT index:选择数据库。select后跟对应数据库的下标进入相应的数据库,默认进入db0。

GEO开头的几个指令都是跟地理坐标相关的:
GEOADD key longitude latitude member [longitude latitude member …]:这个是用来存储地理坐标的,存到sorted set中。(几个指令结合使用的,有点儿不太好理解…)

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.15156960039"
redis> GEORADIUS Sicily 15 37 100 km
1) "Catania"
redis> GEORADIUS Sicily 15 37 200 km
1) "Palermo"
2) "Catania"
redis> 

GEOPOS key member [member …]:从key里返回所有给定位置元素的位置(经度和纬度)。

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOPOS Sicily Palermo Catania NonExisting
1) 1) "13.361389338970184"
   2) "38.115556395496299"
2) 1) "15.087267458438873"
   2) "37.50266842333162"
3) (nil)
redis> 

GEODIST key member1 member2 [unit]:返回两个给定位置之间的距离。如果两个位置之间的其中一个不存在, 那么命令返回空值。
指定单位的参数 unit 必须是以下单位的其中一个:
m 表示单位为米。
km 表示单位为千米。
mi 表示单位为英里。
ft 表示单位为英尺。

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.15156960039"
redis> GEODIST Sicily Palermo Catania km
"166.27415156960038"
redis> GEODIST Sicily Palermo Catania mi
"103.31822459492736"
redis> GEODIST Sicily Foo Bar
(nil)
redis> 

GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]:以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUS Sicily 15 37 200 km WITHDIST
1) 1) "Palermo"
   2) "190.4424"
2) 1) "Catania"
   2) "56.4413"
redis> GEORADIUS Sicily 15 37 200 km WITHCOORD
1) 1) "Palermo"
   2) 1) "13.361389338970184"
      2) "38.115556395496299"
2) 1) "Catania"
   2) 1) "15.087267458438873"
      2) "37.50266842333162"
redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
1) 1) "Palermo"
   2) "190.4424"
   3) 1) "13.361389338970184"
      2) "38.115556395496299"
2) 1) "Catania"
   2) "56.4413"
   3) 1) "15.087267458438873"
      2) "37.50266842333162"
redis> 

GEORADIUSBYMEMBER:查询指定半径内匹配到的最大距离的一个地理空间元素。

redis> GEOADD Sicily 13.583333 37.316667 "Agrigento"
(integer) 1
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km
1) "Agrigento"
2) "Palermo"
redis>

GET key:查询String类型key的value。
GETRANGE key start end:返回value字符串的子串,相当于截取。查看下redis的字符串存储格式就知道怎么截图的了。

redis> SET mykey "This is a string"
OK
redis> GETRANGE mykey 0 3
"This"
redis> GETRANGE mykey -3 -1
"ing"
redis> GETRANGE mykey 0 -1
"This is a string"
redis> GETRANGE mykey 10 100
"string"
redis> 

GETSET key value:给key赋新值,并返回原来的值。GETSET可以和INCR一起使用实现支持重置的计数功能。

redis> INCR mycounter
(integer) 1
redis> GETSET mycounter "0"
"1"
redis> GET mycounter
"0"
redis> 

Redis中文官网指令:http://www.redis.cn/commands.html
英文官网指令:https://redis.io/commands

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值