02Redis数据类型之String 和Hash

 1、String类型

 

1.1、定性:

最简单的类型;

是二进制安全的;

可以包含任何数据类型,比如jpg或者序列化的对象;

 

1.2、操作方法:

1.2.1、set方法:设置key对应的值为string类型的value;

eg:设置键为name的值为lijie。

redis 127.0.0.1:6379> set name lijie

set方法会覆盖更新原来key对应的value;为了不覆盖原值,则使用setnx方法.

1.2.2、setnx方法:设置key对应的值为string类型的value,如果key已经存在,则返回0,nx是not exist的意思;否则返回1;
1.2.3、setex方法:设置key对应的值为string类型的value,并指定此键值对对应的有效期,单位为秒。

eg:设置键为haircolor的值为red,且有效期为10秒。

redis 127.0.0.1:6379>setex haircolor 10red

1.2.4、setrange方法:设置指定key的value值的子字符串

eg:将lijie的126邮箱替换为gmail邮箱。

redis 127.0.0.1:6379>get mail

[email protected]

redis 127.0.0.1:6379>setrange mail 6gmail.com  //从第6个字符开始替换

(integer)15    //剩余字符个数

redis 127.0.0.1:6379>get mail

[email protected]

1.2.5、mset方法:一次设置多个key的值。成功则返回ok,表示所有的值都设置成功;失败则返回0,表示一个值也没用设置成功。

eg:redis 127.0.0.1:6379>mset key1 lijie1 key2 lijie2

redis 127.0.0.1:6379>get key1

“lijie1”

redis 127.0.0.1:6379>get key2

“lijie2”

1.2.6、msetnx方法:一次设置多个key的值,成功返回0,表示所有值都设置成功,失败返回0,表示没有任何值被设置。不会覆盖已经存在的key值。
1.2.7、get方法:获取key对应的value值,如果key不存在,则返回nil。
1.2.8、getset方法:设置key的值,并返回key的旧值。

Eg:redis 127.0.0.1:6379>getname

“lijie”

redis 127.0.0.1:6379>getset name lijie2

“lijie”

redis 127.0.0.1:6379>get name

“lijie2”

1.2.9、getrange方法:获取key的value值的子字符串。

eg:redis 127.0.0.1:6379>getrangename 0 5 //获取key为name的字符串的第0个至第5个字符。

1.2.10、mget方法:一次获取多个key的值,如果对应的key不存在,则返回nil。
1.2.11、incr方法:对key的值做加加操作,并返回新的值。key不存在则会创建key,并认为原来的value是0.

eg:redis 127.0.0.1:6379>setnumber 12

redis 127.0.0.1:6379>get number

“12”

redis 127.0.0.1:6379>incr number

(integer)13

redis 127.0.0.1:6379>get number

“13”

1.2.12、incrby方法:同incr类似,加指定值,key不存在则会创建key,并认为原来的value是0。

eg: redis 127.0.0.1:6379> incrby number5

(integer)18

redis 127.0.0.1:6379>get number

“18”

1.2.13、decr方法:对key的值做减减操作。
1.2.14、decrby方法:同decr类似,减指定值。
1.2.15、append方法:给指定key的字符追加value,返回新字符串的长度。

eg:redis 127.0.0.1:6379>getname

“lijie”

redis 127.0.0.1:6379>append [email protected]

(integer)15

redis 127.0.0.1:6379>get name

[email protected]

1.2.16、strlen方法:取指定key对应value的长度。

 

 

2、Hash类型

2.1、简单介绍:

hash是一个string类型的field和value的映射表。它的添加、删除操作都是O(1)。hash特别适合用于存储对象。相对于将对象的每个字段存成单个string类型,将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。

2.2、操作方法:

2.2.1、hset方法:设置hashfield为指定值,如果key不存在,则先创建。

eg:redis 127.0.0.1:6379>hset  user:001  name  lijie  //user:001看作一张表,name为表中的某个属性。

redis 127.0.0.1:6379>hget user:001 name

“lijie”

2.2.2、hsetnx方法:设置hash field为指定值,如果key不存在,则先创建。如果存在则返回0。
2.2.3、hmset方法:同时设置hash的多个field。

eg:redis 127.0.0.1:6379>hmset  hashtable field1 value1 field2 value2

OK

redis 127.0.0.1:6379>hget hashtablefield1

“value1”

2.2.4、hmget方法:获取全部指定的hashfield。

eg: redis 127.0.0.1:6379>hmget  hashtable field1  field2

2.2.5、hincrby:指定的hashfield 加上给定值。

eg:redis 127.0.0.1:6379>hincrby  hashtable field1  1

2.2.6、hexists方法:测试指定field是否存在。

eg:redis 127.0.0.1:6379>hexists  hashtable  field2

2.2.7、hlen方法:返回指定hash的field数量。

eg:redis 127.0.0.1:6379>hlenhashtable

(integer)2

2.2.8、hdel方法:删除指定hash的field

eg:redis 127.0.0.1:6379>hdel  hashtable field1

2.2.9、hekeys方法:返回hash表里面所有的字段

eg: redis 127.0.0.1:6379>hkeys  hashtable

“field1”

“field2”

2.2.10、hvals:返回hash的所有value

eg:redis 127.0.0.1:6379>hvals  hashtable

“value1”

“value2”

2.2.11、hgetall方法:获取hash中全部的field和value

eg:redis 127.0.0.1:6379>hgetall  hashtable

“field1”

“value1”

“field2”

“value2”

 

你可能感兴趣的:(redis)