基本数据类型string

redis

Posted by XJ on January 13, 2023

redis数据类型

redis有物种基本数据类型

string 字符串

list 列表

set 集合 会去重

sort set (zset) 有序集合

hash 哈希

string不仅仅是字符串 还可以操作 整数 浮点型 bit

使用 help @string 可以看到string相关命令

APPEND 将value追加到值的末尾

  set key1 abc
  append key1 abc
  get key1
  "abcabc"

DECR

执行原子操作 -1

127.0.0.1:6379> set key 10
127.0.0.1:6379> get key
"10"
127.0.0.1:6379> decr key
(integer) 9

DECRBY

执行原子操作 -x

127.0.0.1:6379> set key 10
127.0.0.1:6379> get key
"10"
127.0.0.1:6379> decr key
(integer) 9
127.0.0.1:6379> DECRby key 6
(integer) 3

GET

返回key对应的value

127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379>

GETRANGE

key start end 获取存储一个子字符串

127.0.0.1:6379> set str "hello world"
OK
127.0.0.1:6379> GETRANGE str 6 -1
"world"

GETSET

set一个key的同时 获取之前的值

127.0.0.1:6379> set name sean
OK
127.0.0.1:6379> GETSET name sean123
"sean"

INCR

执行院子操作+1

127.0.0.1:6379> set number 1
OK
127.0.0.1:6379> INCR number
(integer) 2

INCRBY

执行院子操作增加一个数

127.0.0.1:6379> set number 1
OK
127.0.0.1:6379> INCRBY number 5
(integer) 6

INCRBYFLOAT

浮点型原子增加

127.0.0.1:6379> set number 12.5
OK
127.0.0.1:6379> INCRBYFLOAT number 5.3
"17.8"

MGET

同时获取多个key的value

127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> set k2 2
OK
127.0.0.1:6379> MGET k1 k2 k3
1) "1"
2) "2"
3) (nil)

MSET

同时set多个key-value

127.0.0.1:6379> mset k1 3 k2 4 k3 5
OK
127.0.0.1:6379> mget k1 k2 k3
1) "3"
2) "4"
3) "5"

MSETNX

同时set多个值并返回value
1 如果所有的key被set 0 如果没有key被set(至少其中有一个key是存在的) 如果所有key都不存在 1

127.0.0.1:6379> MSETNX k1 333 k2 444 k6 555
(integer) 0
127.0.0.1:6379> MGET k1 k2 k6
1) "3"
2) "4"
3) (nil)

PSETEX

PSETEX key milliseconds value 给key设置一个超时时间 时间单位是毫秒

127.0.0.1:6379> PSETEX mykey 10000 "Hello"
OK
127.0.0.1:6379> PTTL mykey
(integer) 8101

SETEX

设置key并设置过期时间 单位秒

127.0.0.1:6379> SETEX timekey 200 123
OK
127.0.0.1:6379> ttl timekey
(integer) 193

SETNX

1 如果key被设置了 0 如果key没有被设置 当key不存在的时候成功

SETRANGE

修改已存在的key

redis> SET key1 "Hello World"
OK
redis> SETRANGE key1 6 "Redis"
(integer) 11
redis> GET key1
"Hello Redis"

STRALGO

STRLEN

查看key的长度

redis> SET mykey "Hello world"
OK
redis> STRLEN mykey
(integer) 11

PSETEX key milliseconds value

设置keu的过期时间 PSETEX和SETEX一样,唯一的区别是到期时间以毫秒为单位,而不是秒。

127.0.0.1:6379> PSETEX mykey 10000 "Hello"
OK
127.0.0.1:6379> PTTL mykey
(integer) 8345
127.0.0.1:6379> PTTL mykey
(integer) 7001
127.0.0.1:6379>

BITCOUNT

计算对应key中 数值为1 的个数

bitcount key 
127.0.0.1:6379> setbit sean 20230113 1
(integer) 0
127.0.0.1:6379> setbit sean 20230114 1
(integer) 0
127.0.0.1:6379> setbit sean 20230115 1
(integer) 0
127.0.0.1:6379> setbit sean 20230116 0
(integer) 0
127.0.0.1:6379> setbit sean 20230117 1
(integer) 0
127.0.0.1:6379> BITCOUNT sean
(integer) 4
bits中有 1的个数为4
请转至 http://redis.cn/commands/bitcount.html  查看详细信息