zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    k8s 资源管理
    Kubernetes核心组件
    python复习
    项目发布
    tornado
    斯巴达系统(一)
    Tornado-第三篇-tornado支持websocket协议
    Tornado-第二篇-异步非阻塞
    Tornado-第一篇-搭建网页
    python--面向对象的特殊方法(反射,内置方法)
  • 原文地址:https://www.cnblogs.com/CyLee/p/7193278.html
Copyright © 2011-2022 走看看