Redis 的学习和使用

 安装Redis

官方网站:http://redis.io/

官方下载:http://redis.io/download 可以根据需要下载不同版本

windows版:https://github.com/mythz/redis-windows

https://github.com/ServiceStack/redis-windows/raw/master/downloads/redis-latest.zip

phpstudy安装redis扩展 

# 教程
http://blog.csdn.net/tianjingang1/article/details/68491369

# php_redis.dll资源
http://windows.php.net/downloads/pecl/releases/redis/2.2.7/

# php_igbinary.dll 资源
http://pecl.php.net/package/igbinary

window版本:

下载完成之后,在目录中找到 redis-server.exe redis-cli.exe

必须先打开前者,再打开后者,如下图所示:

 相关的Redis配置可在 redis.windows.conf 中配置


String类:

# 插入数据
redis 127.0.0.1:6379> set name wwl

# 查询数据
redis 127.0.0.1:6379> get name
"wwl"

# 删除键值
redis 127.0.0.1:6379> del name

# 验证键是否存在:其中 0,代表此 key 不存在;1 代表存在
redis 127.0.0.1:6379> exists name  # => (integer) 0

setnx: 如果 key 已经存在, 那么不进行set操作并且返回0, nx 是 not exist 的意思

set name Lee
setnx name Lee123
get name  # => Lee

setex:设定有效期

setex name 10 red # => 10秒之后name为red,过了十秒自动过期删除

setrange: 替换值

set name 928532756@qq.com
setrange name 10 2980.com
get name # => "928532756@2980.com"

mset:一次设置多个 key 的值,成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值被设置。

mset key1 HongWan1 key2 HongWan2 # => OK
get key1 # => "HongWan1"
get key2 # => "HongWan2"

msetnx:一次设置多个 key 的值,成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值被设置,但是不会覆盖已经存在的 key。如果这条命令返回 0,那么里面操作都会回滚,都不会被执行。

msetnx key2 HongWan2_new key3 HongWan3 # => (integer) 0
get key2 # => "HongWan2"
get key3 # => (nil)
# 可以看出如果这条命令返回 0,那么里面操作都会回滚,都不会被执行。

getset: 设置 key 的值,并返回 key 的旧值。如果 key 不存在,那么将返回 nil

127.0.0.1:6379> set name Lee
OK
127.0.0.1:6379> getset name Mp
"Lee"

getrange: 字符串截取 

redis 127.0.0.1:6379> get name
# => "HongWan@126.com"
redis 127.0.0.1:6379> getrange name 0 6 # => "HongWan"
redis 127.0.0.1:6379> getrange name -7 -1 # => "126.com"
redis 127.0.0.1:6379> getrange name 7 100 # => "@126.com"

mget: 一次获取多个key,如果不存在则返回nil

127.0.0.1:6379> mget a b c d
# 1) "1"
# 2) "2"
# 3) "3"
# 4) (nil)

incr: 对 key 的值做加加(i++)操作,并返回新的值。注意 incr 一个不是 int 的 value 会返回错误,incr 一个不存在的 key,则设置 key 为 1

decr : 同上,对key的值做减减操作。

redis 127.0.0.1:6379> set age 20
# =>OK
redis 127.0.0.1:6379> incr age # =>(integer) 21
redis 127.0.0.1:6379> get age # =>"21"

 

incrby: 同 incr 类似,加指定值 ,key 不存在时候会设置 key,并认为原来的 value 是 0

decrby: 同上,减去指定的值

redis 127.0.0.1:6379> get age
# => "21"
redis 127.0.0.1:6379> incrby age 5
# => (integer) 26
redis 127.0.0.1:6379> get age
# => "26"

append:给指定 key 的字符串值追加 value,返回新字符串值的长度。

127.0.0.1:6379> set name 928532756
# => OK
127.0.0.1:6379> append name @qq.com
# => (integer) 16
127.0.0.1:6379> get name
# => "928532756@qq.com"

strlen: 获取指定值的长度

127.0.0.1:6379> strlen name
# => (integer) 16

  

Hash 类型及操作:

hset / hget:设置 / 获取指定hash field 的值,如果 key 不存在,则先创建。

127.0.0.1:6379> hset myhash field1 hello
# => (integer) 1
127.0.0.1:6379> hset myhash field2 world
# => (integer) 1
127.0.0.1:6379> hget myhash field1
# => "hello"
127.0.0.1:6379> hget myhash field1
# => "hello"
127.0.0.1:6379> hget myhash field2
# => "world"

hsetnx:设置 hash field 为指定值,如果 key 不存在,则先创建。如果 field 已经存在,返回 0,nx 是not exist 的意思。

redis 127.0.0.1:6379> hsetnx myhash field "Hello"
# => (integer) 1
redis 127.0.0.1:6379> hsetnx myhash field "Hello"
# => (integer) 0 第一次执行是成功的,但第二次执行相同的命令失败,原因是 field 已经存在了。

hmset / hmget: 同时设置/获取 hash 的多个 field。

127.0.0.1:6379> del myhash
# => (integer) 1
127.0.0.1:6379> hmset myhash field1 Hello field2 World
# => OK
127.0.0.1:6379> hmget myhash fiele1 field2 field3
# => 1) "Hello"
# => 2) "World"
# => 3) (nil) 由于数据库没有 field3,所以取到的是一个空值 nil

hexists: 测试指定的field是否存在

127.0.0.1:6379> hexists myhash field1
# => (integer) 1

hincrby:指定的 hash filed 加上给定值。可以为负数

127.0.0.1:6379> hset myhash field3 20
# (integer) 1
127.0.0.1:6379> hincrby myhash field3 -8
# (integer) 12

hlen:返回指定 hash 的 field 数量。

127.0.0.1:6379> hlen myhash
# (integer) 3

hdel: 删除指定hash的列, 如果要删除hash表本身,直接使用del

127.0.0.1:6379> hdel myhash field3
# (integer) 1

hkeys: 返回hash所有的列

127.0.0.1:6379> hkeys myhash
# 1) "field1"
# 2) "field2"

hvals: 返回hash所有的值

127.0.0.1:6379> hvals myhash
# 1) "Hello"
# 2) "World"

hgetall: 返货hash所有的键值

127.0.0.1:6379> hgetall myhash
# 1) "field1"
# 2) "Hello"
# 3) "field2"
# 4) "World"

  

lists  类型及操作 :

lpush : 在 key 对应 list 的头部添加字符串元素

lrange:  是用于取 mylist 的内容。

127.0.0.1:6379> lpush mylist "world"
# (integer) 1
127.0.0.1:6379> lpush mylist "hello"
# (integer) 2
127.0.0.1:6379> lrange mylist 0 -1
# 1) "hello"
# 2) "world"

rpush: 在 key 对应 list 的尾部添加字符串元素

127.0.0.1:6379> rpush mylist3 "hello"
# (integer) 1
127.0.0.1:6379> rpush mylist3 "world"
# (integer) 2
127.0.0.1:6379> lrange mylist3 0 -1
# 1) "hello"
# 2) "world"

linsert: 在 key 对应 list 的特定位置之前或之后添加字符串元素

127.0.0.1:6379> linsert mylist3 before "world" "there"
# (integer) 3
127.0.0.1:6379> lrange mylist3 0 -1
# 1) "hello"
# 2) "there"
# 3) "world"

lset: 替换 list 中指定索引的值

127.0.0.1:6379> rpush mylist4 "one"
# (integer) 1
127.0.0.1:6379> rpush mylist4 "two"
# (integer) 2
127.0.0.1:6379> rpush mylist4 "there"
# (integer) 3
127.0.0.1:6379> lset mylist4 0 "four"
# OK
127.0.0.1:6379> lset mylist4 2 "five"
# OK
127.0.0.1:6379> lrange mylist4 0 -1
# 1) "four"
# 2) "two"
# 3) "five"

lrem: 从 key 对应 list 中删除 count 个和 value 相同的元素。count>0 时,按从头到尾的顺序删除,具体如下:

127.0.0.1:6379> rpush mylist5 "hello"
# (integer) 1
127.0.0.1:6379> rpush mylist5 "hello"
# (integer) 2
127.0.0.1:6379> rpush mylist5 "foo"
# (integer) 3
127.0.0.1:6379> rpush mylist5 "hello"
# (integer) 4
127.0.0.1:6379> lrem mylist5 2 "hello"
# (integer) 2
127.0.0.1:6379> lrange mylist5 0 -1
# 1) "foo"
# 2) "hello"

 count<0 时,按从尾到头的顺序删除,具体如下:

127.0.0.1:6379> rpush mylist6 "hello"
# (integer) 1
127.0.0.1:6379> rpush mylist6 "hello"
# (integer) 2
127.0.0.1:6379> rpush mylist6 "foo"
# (integer) 3
127.0.0.1:6379> rpush mylist6 "hello"
# (integer) 4
127.0.0.1:6379> lrem mylist6 -2 "hello"
# (integer) 2
127.0.0.1:6379> lrange mylist6 0 -1
# 1) "hello"
# 2) "foo"

count=0 时,删除全部,具体如下:

redis 127.0.0.1:6379> rpush mylist7 "hello"
# (integer) 1
redis 127.0.0.1:6379> rpush mylist7 "hello"
# (integer) 2
redis 127.0.0.1:6379> rpush mylist7 "foo"
# (integer) 3
redis 127.0.0.1:6379> rpush mylist7 "hello"
# (integer) 4
redis 127.0.0.1:6379> lrem mylist7 0 "hello"
# (integer) 3
redis 127.0.0.1:6379> lrange mylist7 0 -1
# 1) "foo"

ltrim: 保留指定索引范围内的值

127.0.0.1:6379>  rpush mylist8 "one"
# (integer) 1
127.0.0.1:6379>  rpush mylist8 "two"
# (integer) 2
127.0.0.1:6379>  rpush mylist8 "three"
# (integer) 3
127.0.0.1:6379>  rpush mylist8 "four"
# (integer) 4
127.0.0.1:6379> ltrim mylist8 1 -1
# OK
127.0.0.1:6379> lrange mylist8 0 -1
# 1) "two"
# 2) "three"
# 3) "four"

lpop: 弹出头部元素并且移出List

rpop: 弹出尾部元素并且移出List

127.0.0.1:6379> lrange mylist 0 -1
# 1) "hello"
# 2) "world"
127.0.0.1:6379> lpop mylist
# "hello"
127.0.0.1:6379> lrange mylist 0 -1
# 1) "world"

 

rpoplpush: 从第一个 list 的尾部移除元素, 并添加到第二个 list 的头部,最后返回被移除的元素值,整个操作是原子的.如果第一个 list 是空或者不存在返回 nil

127.0.0.1:6379> lrange mylist5 0 -1
# 1) "foo"
# 2) "hello"
127.0.0.1:6379> lrange mylist6 0 -1
# 1) "hello"
# 2) "foo"
127.0.0.1:6379> rpoplpush mylist5 mylist6
# "hello"
127.0.0.1:6379> lrange mylist5 0 -1
# 1) "foo"
127.0.0.1:6379> lrange mylist6 0 -1
# 1) "hello"
# 2) "hello"
# 3) "foo"

 lindex: 返回名称为 key 的 list 中 index 位置的元素

127.0.0.1:6379> lrange mylist2 0 -1
# 1) "hello"
# 2) "wird"
127.0.0.1:6379> lindex mylist2 0
# "hello"

llen: 获取list的长度

127.0.0.1:6379> llen mylist2
# (integer) 2

sets  类型及操作:

 

sadd: 向名称为 key 的 set 中添加元素

smembers: 查看 myset 中的所有元素

127.0.0.1:6379> sadd myset "hello"
# (integer) 1
127.0.0.1:6379> sadd myset "world"
# (integer) 1
127.0.0.1:6379> sadd myset "world"
# (integer) 0 由于第三个元素跟第二个元素是相同的,所以第三个元素没有添加成功
127.0.0.1:6379> smembers myset
# 1) "world"
# 2) "hello"

srem: 删除指定的值

127.0.0.1:6379> sadd myset2 "one"
# (integer) 1
127.0.0.1:6379> sadd myset2 "two"
# (integer) 1
127.0.0.1:6379> sadd myset2 "three"
# (integer) 1
127.0.0.1:6379> srem myset2 "one"
# (integer) 1
127.0.0.1:6379> srem myset2 "four"
# (integer) 0 由于元素 中没有 four 所以,此条 srem 命令执行失败。
127.0.0.1:6379> smembers myset2
# 1) "three"
# 2) "two"

spop: 【随机、随机、随机】弹出一个元素并从set中删除

127.0.0.1:6379> sadd myset3 "one"
# (integer) 1
127.0.0.1:6379> sadd myset3 "two"
# (integer) 1
127.0.0.1:6379> sadd myset3 "three"
# (integer) 1
127.0.0.1:6379> spop myset3
# "two"

 

sdiff: 返回所有给定 key 与第一个 key 的差集

127.0.0.1:6379> smembers myset2
# 1) "three"
# 2) "two"
127.0.0.1:6379> smembers myset3
# 1) "three"
# 2) "one"
127.0.0.1:6379> sdiff myset2 myset3
# 1) "two"

sdiffstore: 对比两组set的差集,并且存入另一个set中

127.0.0.1:6379> smembers myset2
# 1) "three"
# 2) "two"
127.0.0.1:6379> smembers myset3
# 1) "three"
# 2) "one"
127.0.0.1:6379> sdiff myset2 myset3
# 1) "two"
127.0.0.1:6379> sdiffstore myset4 myset2 myset3
# (integer) 1
127.0.0.1:6379> smembers myset4
# 1) "two"

sinter: (核心功能)返回所有给定 key 的交集

127.0.0.1:6379> smembers myset2
# 1) "three"
# 2) "two"
127.0.0.1:6379> smembers myset3
# 1) "three"
# 2) "one"
127.0.0.1:6379> sinter myset2 myset3
# 1) "three"

sinterstore: 返回所有给定 key 的交集,并将结果存为另一个 key

127.0.0.1:6379> smembers myset2
# 1) "three"
# 2) "two"
127.0.0.1:6379> smembers myset3
# 1) "three"
# 2) "one"
127.0.0.1:6379> sinterstore myset4 myset2 myset3
# (integer) 1
127.0.0.1:6379> smembers myset4
# 1) "three"

sunion: 返回所有给定 key 的并集

127.0.0.1:6379> smembers myset2
# 1) "three"
# 2) "two"
127.0.0.1:6379> smembers myset3
# 1) "three"
# 2) "one"
127.0.0.1:6379> sunion myset2 myset3
# 1) "one"
# 2) "two"
# 3) "three"

sunionstore: 返回所有给定 key 的并集,并将结果存为另一个 key

127.0.0.1:6379> smembers myset2
# 1) "three"
# 2) "two"
127.0.0.1:6379> smembers myset3
# 1) "three"
# 2) "one"
127.0.0.1:6379> sunionstore myset4 myset2 myset3
# (integer) 3
127.0.0.1:6379> smembers myset4
# 1) "one"
# 2) "two"
# 3) "three"

smove:从第一个 key 对应的 set 中 移除 指定值 并添加到第二个对应 set 中

127.0.0.1:6379> smembers myset2
# 1) "three"
# 2) "two"
127.0.0.1:6379> smove myset2 myset7 three
# (integer) 1
127.0.0.1:6379> smembers myset7
# 1) "three"
127.0.0.1:6379> smembers myset2
# 1) "two"

scard: 返回指定set的长度

127.0.0.1:6379> scard myset2
# (integer) 1

sismember: 检测是否包含指定值

127.0.0.1:6379> smembers myset2
# 1) "two"
127.0.0.1:6379> sismember myset2 two
# (integer) 1
127.0.0.1:6379> sismember myset2 one
# (integer) 0

srandmember: 机返回名称为 key 的 set 的一个元素,但是不删除元素

127.0.0.1:6379> smembers myset2
# 1) "two"
127.0.0.1:6379> sismember myset2 two
# (integer) 1
127.0.0.1:6379> sismember myset2 one
# (integer) 0

sorted sets  类型及操作

zadd: 向名称为 key 的 zset 中添加元素 member,score 用于排序。如果该元素已经存在,则根据score 更新该元素的顺序

127.0.0.1:6379> zadd myzset 1 "one"
# (integer) 1
127.0.0.1:6379> zadd myzset 2 "two"
# (integer) 1
127.0.0.1:6379> zadd myzset 3 "two"
# (integer) 0 
127.0.0.1:6379> zrange myzset 0 -1 withscores
# 1) "one"
# 2) "1"
# 3) "two"
# 4) "3" two 被设置了 2 次,那么将以最后一次的设置为准

zrem: 删除名称为 key 的 zset 中的元素 member

127.0.0.1:6379> zrange myzset 0 -1 withscores
# 1) "one"
# 2) "1"
# 3) "two"
# 4) "3"
127.0.0.1:6379> zrem myzset two
# (integer) 1
127.0.0.1:6379> zrange myzset 0 -1 withscores
# 1) "one"
# 2) "1" 
# 可以看到 two 被删除了

 

zincrby: 本例中将 one 的 score 从 1 增加了 2,增加到了 3

127.0.0.1:6379> zadd myzset2 1 "one"
# (integer) 1
127.0.0.1:6379> zadd myzset2 2 "two"
# (integer) 1
127.0.0.1:6379> zincrby myzset2 2 "one"
# "3"
127.0.0.1:6379> zrange myzset2 0 -1 withscores
# 1) "two"
# 2) "2"
# 3) "one"
# 4) "3"

zrank: 返回store(key)

127.0.0.1:6379> zrange myzset2 0 -1 withscores
# 1) "two"
# 2) "2"
# 3) "one"
# 4) "3"
127.0.0.1:6379> zrank myzset2 two
# (integer) 0
127.0.0.1:6379> zrank myzset2 one
# (integer) 1

zrevrank: 返回所在的排名

127.0.0.1:6379> zrange myzset3 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"
127.0.0.1:6379> zrevrank myzset3 two
(integer) 2

zrevrange: (按 score 从大到小排序)中的 index 从 start 到 end 的所有元素

127.0.0.1:6379> zrevrange myzset3 0 -1 withscores
# 1) "four"
# 2) "4"
# 3) "three"
# 4) "3"
# 5) "two"
# 6) "2"
# 7) "one"
# 8) "1"

zrangebyscore: 返回指定区间的score

127.0.0.1:6379> zrangebyscore myzset3 2 3 withscores
# 1) "two"
# 2) "2"
# 3) "three"
# 4) "3"

zcount: 返回指定区间的数量

127.0.0.1:6379> zcount myzset3 2 3
# (integer) 2

zcard: 返回集合中元素个数

redis 127.0.0.1:6379> zcard myzset3
# (integer) 4

zscore:返回给定元素对应的 score(key)

127.0.0.1:6379> zrange myzset3 0 -1 withscores
# 1) "one"
# 2) "1"
# 3) "two"
# 4) "2"
# 5) "three"
# 6) "3"
# 7) "four"
# 8) "4"
127.0.0.1:6379> zscore myzset3 two
# "2"

zremrangebyrank: 删除集合中 score 在给定区间的元素

127.0.0.1:6379> zrange myzset3 0 -1 withscores
# 1) "one"
# 2) "1"
# 3) "two"
# 4) "2"
# 5) "three"
# 6) "3"
# 7) "four"
# 8) "4"
127.0.0.1:6379> zremrangebyrank myzset3 3 3
(integer) 1
127.0.0.1:6379> zrange myzset3 0 -1 withscores
# 1) "one"
# 2) "1"
# 3) "two"
# 4) "2"
# 5) "three"
# 6) "3" 下标为3,既four被删除了

zremrangebyscore: 删除集合中 score 在给定区间的元素

127.0.0.1:6379> zrange myzset3 0 -1 withscores
# 1) "one"
# 2) "1"
# 3) "two"
# 4) "2"
# 5) "three"
# 6) "3"
127.0.0.1:6379> zremrangebyscore myzset3 1 2
# (integer) 2
127.0.0.1:6379> zrange myzset3 0 -1 withscores
# 1) "three"
# 2) "3"

Redis  常用命令

keys: 返回满足给定 pattern 的所有 key

127.0.0.1:6379> keys *
#  1) "myset4"
#  2) "myset7"
#  3) "a"
#  4) "myzset"
#  5) "c"
#  6) "mylist4"
#  7) "myset2"
#  8) "myset"
#  9) "mylist2"
# 10) "myzset2"
# 11) "mylist5"
# 12) "mylist3"
# 13) "myset3"
# 14) "myhash"
# 15) "mylist"
# 16) "mylist8"
# 17) "myzset3"
# 18) "b"
# 19) "mylist6"

用表达式 mylist*,代表取出所有以 mylist 开头的 key

127.0.0.1:6379> keys mylist*
# 1) "mylist4"
# 2) "mylist2"
# 3) "mylist5"
# 4) "mylist3"
# 5) "mylist"
# 6) "mylist8"
# 7) "mylist6"

exists:确认一个 key 是否存在

redis 127.0.0.1:6379> exists HongWan
# (integer) 0 不存在 HongWan 这个 key
redis 127.0.0.1:6379> exists age
# (integer) 1  age 这个 key 是存在的

del:删除一个 key

redis 127.0.0.1:6379> del age
# (integer) 1
redis 127.0.0.1:6379> exists age
# (integer) 0

expire:设置一个 key 的过期时间(单位:秒)

ttl: 获取一个 key 值的有效时期,直至为 -1 说明此值已过期 或者 没有过期时间(比如中途使用 persist 移除了过期时间,这样就永远不会过期了)

127.0.0.1:6379> expire a 10
# (integer) 1
127.0.0.1:6379> ttl a
# (integer) 7
127.0.0.1:6379> ttl a
# (integer) 6
127.0.0.1:6379> ttl a
# (integer) -2
127.0.0.1:6379> exists a
# (integer) 0

move:将当前数据库中的 key 转移到其它数据库中

在本例中,我先显式的选择了数据库 0(重点:默认的数据库就是0),然后在这个库中设置一个 key,接下来我们将这个
key 从数据库 0 移到数据库 1, 之后我们确认在数据库 0 中无此 key 了, 但在数据库 1 中存在
这个 key,说明我们转移成功了

127.0.0.1:6379> select 0
# OK
127.0.0.1:6379> exists 30
# (integer) 0
127.0.0.1:6379> set age 30
# OK
127.0.0.1:6379> get age
# "30"
127.0.0.1:6379> move age 1
# (integer) 1
127.0.0.1:6379> get age
# (nil)
127.0.0.1:6379> select 1
# OK
127.0.0.1:6379[1]> get age
# "30"

persist: 删除过期时间(让它永不过期)

127.0.0.1:6379> expire b 300
# (integer) 1
127.0.0.1:6379> ttl b
# (integer) 296
127.0.0.1:6379> ttl b
# (integer) 294
127.0.0.1:6379> ttl b
# (integer) 293
127.0.0.1:6379> get b
# "2"
127.0.0.1:6379> persist b
# (integer) 1
127.0.0.1:6379> get b
# "2"
127.0.0.1:6379> ttl b
# (integer) -1

randomkey: 随机返回一个 key

127.0.0.1:6379> randomkey
# "myzset"

rename: 重命名 key 要注意覆盖影响

127.0.0.1:6379> get a
# "1"
127.0.0.1:6379> get b
# "2"
127.0.0.1:6379> rename b a
# OK
127.0.0.1:6379> get a
# "2"

type: 返回值的类型

127.0.0.1:6379> type a
# string
127.0.0.1:6379> type myzset
# zset
127.0.0.1:6379> type mylist
# list

服务器相关命令

ping: 测试连接是否存活

redis 127.0.0.1:6379> ping
# PONG

//执行下面命令之前,我们停止 redis 服务器
redis 127.0.0.1:6379> ping
# Could not connect to Redis at 127.0.0.1:6379: Connection refused

//执行下面命令之前,我们启动 redis 服务器
not connected> ping
PONG

echo:在命令行打印一些内容

redis 127.0.0.1:6379> echo HongWan
# "HongWan"

select: 选择数据库。Redis 数据库编号从 0~15,我们可以选择任意一个数据库来进行数据的存取。

redis 127.0.0.1:6379> select 1
# OK
redis 127.0.0.1:6379[1]> select 16
# (error) ERR invalid DB index

quit:退出连接。

redis 127.0.0.1:6379> quit
[root@localhost redis-2.2.12]#

dbsize:返回当前数据库中 key 的数目。

redis 127.0.0.1:6379> dbsize
# (integer) 18

info: 获取服务器的信息和统计。

redis 127.0.0.1:6379> info
redis_version:2.2.12
redis_git_sha1:00000000
redis_git_dirty:0
arch_bits:32
multiplexing_api:epoll
...

monitor: 实时转储收到的请求。

启动之后,开启另一个命令行,可以看到监听到了keys *  

config get: 获取服务器配置信息。

127.0.0.1:6379> config get dir
# 1) "dir"
# 2) "C:\Users\lizhaohong\Desktop\redis-windows-master\src\msopentech\redis-64.2.8.2101"

flushdb:删除当前选择数据库中的所有 key。

在本例中我们将 0 号数据库中的 key 都清除了。

127.0.0.1:6379> dbsize
# (integer) 18
127.0.0.1:6379> flushdb
# OK
127.0.0.1:6379> dbsize
# (integer) 0

flushall:删除所有数据库中的所有 key。

redis 127.0.0.1:6379[1]> dbsize
#(integer) 1
redis 127.0.0.1:6379[1]> select 0
#OK
redis 127.0.0.1:6379> flushall
#OK
redis 127.0.0.1:6379> select 1
#OK
redis 127.0.0.1:6379[1]> dbsize
# (integer) 0
原文地址:https://www.cnblogs.com/CyLee/p/7193278.html