Redis学习(6)redis string数据类型

Redis支持五种数据类型,string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set)有序集合等。

1. string类型

string是redis的最基本数据类型,一个key对应一个value。

string类型是二进制安全的,意思是redis的string类型可以包含任何数据。比如jpg图像或者序列化的对象。

string类型是redis最基本的数据类型,一个键最大能存储512MB。

二进制安全:在传输数据时,保证二进制数据的信息安全。也就是不被篡改、破译等。如果被攻击,能够及时检测出来。

二进制安全的特点:

(1)编码、解码在客户端完成,执行效率高。

(2)不需要频繁的编解码,不会出现乱码。

 SET key value

SET 命令用于设定给定key的值,如果key存在,便覆盖旧值,且无视类型。

SETNX key value

SETNX(SET if Not eXists)命令在指定key不存在的时候,为key设置给定值。

[root@localhost redis-5.0.4]# ./bin/redis-cli 
127.0.0.1:6379> SET a 1
OK
127.0.0.1:6379> GET a
"1"
127.0.0.1:6379> SETNX a 2
(integer) 0
127.0.0.1:6379> GET a
"1"
127.0.0.1:6379> SETNX b 2
(integer) 1
127.0.0.1:6379> GET b
"2"

GET key

获取指定key的值,如果key不存在,返回nil。如果key储存的不是字符串类型,返回一个错误。

127.0.0.1:6379> SET a 1
OK
127.0.0.1:6379> GET a
"1"
127.0.0.1:6379> GET not_exist_key
(nil)
127.0.0.1:6379> 
127.0.0.1:6379> hset aSet a a
(integer) 1
127.0.0.1:6379> hset aSet b b
(integer) 1
127.0.0.1:6379> GET aSet
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> HGET aSet a
"a"
127.0.0.1:6379> HGET aSet b
"b"

GETRANGE key start end

用于获取存储在指定key中的字符串的子字符串。字符串的截取范围由start和end决定(包括start和end)。

127.0.0.1:6379> SET a 'hello redis'
OK
127.0.0.1:6379> GET a
"hello redis"
127.0.0.1:6379> GETRANGE a 0 3
"hell"
127.0.0.1:6379> GETRANGE a 0 4
"hello"

MGET key

获取所有给定key的值

127.0.0.1:6379> SET a 1
OK
127.0.0.1:6379> SET b 2
OK
127.0.0.1:6379> MGET a b
1) "1"
2) "2"
127.0.0.1:6379> 

GETSET key value

用于设置指定key的值,并返回key的旧值,当key不存在时,返回nil。

127.0.0.1:6379> SET a 1
OK
127.0.0.1:6379> GETSET a 2
"1"
127.0.0.1:6379> GET a
"2"
127.0.0.1:6379> 

STRLEN key

返回key所存储的字符串长度。

127.0.0.1:6379> SET a 'hello world'
OK
127.0.0.1:6379> STRLEN a
(integer) 11

DEL key

删除key。

127.0.0.1:6379> SET a hello
OK
127.0.0.1:6379> GET a
"hello"
127.0.0.1:6379> DEL a
(integer) 1
127.0.0.1:6379> GET a
(nil)
127.0.0.1:6379> 

INCR

自增,将key中存储的字符值增1.如果key不存在,key会被初始化为0,再执行INCR操作。

DECR

自减。将key中存储的字符值减1.如果key不存在,key会被初始化为0,再执行DECR操作。

127.0.0.1:6379> INCR count 
(integer) 1
127.0.0.1:6379> INCR count 
(integer) 2
127.0.0.1:6379> GET count
"2"
127.0.0.1:6379> DECR count
(integer) 1
127.0.0.1:6379> DECR count
(integer) 0
127.0.0.1:6379> DECR count
(integer) -1

INCRBY key 增量值。

DECRBY key 增量值。

127.0.0.1:6379> GET a
(nil)
127.0.0.1:6379> INCRBY a 10
(integer) 10
127.0.0.1:6379> GET a
"10"
127.0.0.1:6379> DECRBY a 20
(integer) -10
127.0.0.1:6379> DECRBY a -30
(integer) 20
127.0.0.1:6379> GET a
"20"
127.0.0.1:6379> 

APPEND key value

将value附在指定key的尾部,如果不存在,为其赋值。

127.0.0.1:6379> SET a 'hello '
OK
127.0.0.1:6379> APPEND a 'world!'
(integer) 12
127.0.0.1:6379> GET a
"hello world!"
127.0.0.1:6379> 
127.0.0.1:6379> DEL a
(integer) 1
127.0.0.1:6379> GET a
(nil)
127.0.0.1:6379> APPEND a hello
(integer) 5
127.0.0.1:6379> GET a
"hello"
127.0.0.1:6379> 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值