Redis篇——原生命令的操作(二)

一 进入Redis-cli

window版本就直接:点击`

redis-cli.exe

`linux版本就是启动服务就可以了,命令如下

redis-cli

二 命令说明和演示

set和get

说明

  • Redis SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
  • Redis Get 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。

语法

redis 127.0.0.1:6379> SET KEY_NAME VALU
redis 127.0.0.1:6379> GET KEY_NAME

实例

# 对不存在的键进行设置
redis 127.0.0.1:6379> SET key "k1" "v2"
OK
redis 127.0.0.1:6379> GET "k1"
"va"

# 对已存在的键进行设置
redis 127.0.0.1:6379> SET "k2" "v2-new"
OK
redis 127.0.0.1:6379> GET "k2"
"v2-new"

# 对不存在的键进行获取
127.0.0.1:6379> get "k1"
(nil)

# 对已存在的键进行设置
127.0.0.1:6379> get "k1"
"v1"

Getrange

说明

  • Redis Getrange 命令用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)

语法

redis 127.0.0.1:6379> GETRANGE KEY_NAME start end

实例

#对设置的字符串进行截取
127.0.0.1:6379> set 'key1' '123456'
OK
127.0.0.1:6379> getrange 'key1' 1 2
"23"
127.0.0.1:6379> getrange 'key1' 0 1
"12"

Getset

说明

-Redis Getset 命令用于设置指定 key 的值,并返回 key 的旧值。

语法

redis 127.0.0.1:6379> GETSET KEY_NAME VALUE

实例

# 没有旧值,返回 nil
127.0.0.1:6379> get "kay1"
(nil)
127.0.0.1:6379> get "key1"
"123456"
 # 有旧值,返回旧值 
127.0.0.1:6379> getset "key1"  654321 
"123456"
127.0.0.1:6379> getset "key2"  654321 
(nil)
127.0.0.1:6379> getset "key2"  121212
"654321"
#其实就是两个命令前后执行了


Getbit

说明

-Redis Getbit 命令用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)。

语法

redis 127.0.0.1:6379> GETBIT KEY_NAME OFFSET

实例

# 字符串值指定偏移量上的位(bit)。
# 当偏移量 OFFSET 比字符串值的长度大,或者 key 不存在时,返回 0 。

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> exists bit
(integer) 0
127.0.0.1:6379> getbit bit 10086
(integer) 0
127.0.0.1:6379> setbit bit 10086 1
(integer) 0
127.0.0.1:6379> getbit bit 10086
(integer) 1

Mget

说明

-Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。

语法

redis 127.0.0.1:6379>  MGET KEY1 KEY2 .. KEYN

实例

127.0.0.1:6379> set key1 "hello"
OK
127.0.0.1:6379> set key2 "world"
OK
127.0.0.1:6379> mget key1 key2
1) "hello"
2) "world"
127.0.0.1:6379> mget key1 key2 key3
1) "hello"
2) "world"
3) (nil)

Setbit

说明

-Redis Setbit 命令用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。

语法

redis 127.0.0.1:6379> Setbit KEY_NAME OFFSET

实例

127.0.0.1:6379> setbit bit 10086 1
(integer) 0
127.0.0.1:6379> getbit bit 10086
(integer) 1
# bit 默认被初始化为0
127.0.0.1:6379> getbit bit 100
(integer) 0

Setex

说明

-Redis Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。

语法

redis 127.0.0.1:6379> SETEX KEY_NAME TIMEOUT VALUE

实例

127.0.0.1:6379> setex mykey 60 redis
OK
127.0.0.1:6379> ttl mykey
(integer) 51
127.0.0.1:6379> get mykey
"redis"
127.0.0.1:6379> ttl mykey
(integer) 40
127.0.0.1:6379> ttl mykey
(integer) 31
127.0.0.1:6379> get mykey
"redis"

Setnx

说明

-Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值

语法

redis 127.0.0.1:6379> SETNX KEY_NAME VALUE

实例

# key1 不存在
127.0.0.1:6379> exists key1
(integer) 0
# 设置key1 设置
127.0.0.1:6379> setnx key1 "value1"
(integer) 1
# 再次设置value  失败
127.0.0.1:6379> setnx key1 "value2"
(integer) 0
# 获取到key1的值,发现没有被覆盖
127.0.0.1:6379> get "key1"
"value1"

Setrange

说明
-Redis Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
语法

redis 127.0.0.1:6379> SETRANGE KEY_NAME OFFSET VALUE

实例

127.0.0.1:6379> set key1 "hello girls"
OK
127.0.0.1:6379> setrange key1 6 redis
(integer) 11
127.0.0.1:6379> get key1
"hello redis"
127.0.0.1:6379> 

Strlen

说明
-Redis Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
语法

redis 127.0.0.1:6379>  STRLEN KEY_NAME

实例

# 设置一个key value 
127.0.0.1:6379> set key1 "hello world"
OK
127.0.0.1:6379> strlen key1
(integer) 11
# 不存在的key value 可以看到  key2的长度为零
127.0.0.1:6379> get key2
(nil)
127.0.0.1:6379> strlen key2
(integer) 0

Mset

说明
-Redis Mset 命令用于同时设置一个或多个 key-value 对
语法

redis 127.0.0.1:6379>  MSET key1 value1 key2 value2 .. keyN valueN 

实例

127.0.0.1:6379> mset key1 val1 key2 val2
OK
127.0.0.1:6379> keys *
1) "key1"
2) "key2"
127.0.0.1:6379> get key1
"val1"
127.0.0.1:6379> get key2
"val2"

Msetnx

说明
-Redis Msetnx 命令用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
语法

redis 127.0.0.1:6379>  MSETNX key1 value1 key2 value2 .. keyN valueN 

实例

127.0.0.1:6379> MSETNX rmdbs "MySQL" nosql "MongoDB" key-value-store "redis"
(integer) 1
127.0.0.1:6379> MGET rmdbs nosql key-value-store
1) "MySQL"
2) "MongoDB"
3) "redis"
127.0.0.1:6379> MSETNX rmdbs "Sqlite" language "python"
(integer) 0
 # 因为 MSET 是原子性操作,language 没有被设置  redis是单线程
127.0.0.1:6379> EXISTS language
(integer) 0
127.0.0.1:6379> GET rmdbs 
"MySQL"、

Psetex

说明
-Redis Psetex 命令以毫秒为单位设置 key 的生存时间。
语法

redis 127.0.0.1:6379> PSETEX key1 EXPIRY_IN_MILLISECONDS value1 

实例

127.0.0.1:6379> psetex key1 100 hello
OK
127.0.0.1:6379> pttl key1
100
127.0.0.1:6379> pttl key1
(integer) -2

Incr

说明
-Redis Incr 命令将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
语法

redis 127.0.0.1:6379> INCR KEY_NAME

实例

127.0.0.1:6379> 
127.0.0.1:6379> set num 100
OK
127.0.0.1:6379> incr num
(integer) 101
127.0.0.1:6379> get num
"101"

Incrby

说明
-Redis Incrby 命令将 key 中储存的数字加上指定的增量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
语法

redis 127.0.0.1:6379> INCRBY KEY_NAME INCR_AMOUNT

实例

127.0.0.1:6379> set num 50
OK
127.0.0.1:6379> incrby num 10
(integer) 60
127.0.0.1:6379> get num
"60"
# 不存在key的时候   就是从0开始
127.0.0.1:6379> exists countNum
(integer) 0
127.0.0.1:6379> incrby countNum 30
(integer) 30
127.0.0.1:6379> get countNum
"30"

Incrbyfloat

说明
-Redis Incrbyfloat 命令为 key 中所储存的值加上指定的浮点数增量值。
如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。
语法

redis 127.0.0.1:6379> INCRBYFLOAT KEY_NAME INCR_AMOUNT

实例

127.0.0.1:6379> set mykey 10.50
OK
127.0.0.1:6379> incrbyfloar mykey 0.1
(error) ERR unknown command 'incrbyfloar'
127.0.0.1:6379> incrbyfloat mykey 0.1
"10.6"
127.0.0.1:6379> set mykey1 314e-2
OK
127.0.0.1:6379> get mykey1
"314e-2"
127.0.0.1:6379> incrbyfloat mykey1 0
"3.14"
127.0.0.1:6379> set mykey2
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379> set mykey2 3
OK
127.0.0.1:6379> incrbyfloat mykey2 1.1
"4.1"
127.0.0.1:6379> set mykey3 3.0
OK
127.0.0.1:6379> get mykey3
"3.0"
127.0.0.1:6379> incrbyfloat mykey3 1.000000000
"4"
127.0.0.1:6379> get mykey3
"4"

Decr

说明
-Redis Decr 命令将 key 中储存的数字值减一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
语法

redis 127.0.0.1:6379>  DECR KEY_NAME

实例

127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> decr num 10
(error) ERR wrong number of arguments for 'decr' command
127.0.0.1:6379> decr num 
(integer) 9
127.0.0.1:6379> exists count
(integer) 0
127.0.0.1:6379> decr count
(integer) -1

Decrby

说明
-Redis Decrby 命令将 key 所储存的值减去指定的减量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
语法

redis 127.0.0.1:6379>  DECR KEY_NAME

实例

127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> decr num 10
(error) ERR wrong number of arguments for 'decr' command
127.0.0.1:6379> decr num 
(integer) 9
127.0.0.1:6379> exists count
(integer) 0
127.0.0.1:6379> decr count
(integer) -1

Append

说明
-Redis Append 命令用于为指定的 key 追加值。
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
语法

redis 127.0.0.1:6379> APPEND KEY_NAME NEW_VALUE  

实例

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> append k1  va
(integer) 2
127.0.0.1:6379> get k1
"va"
127.0.0.1:6379> append k1 va
(integer) 4
127.0.0.1:6379> get k1
"vava"

你可能感兴趣的:(Redis)