今天看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