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
“lijie@126.com”
redis 127.0.0.1:6379>setrange mail 6gmail.com //从第6个字符开始替换
(integer)15 //剩余字符个数
redis 127.0.0.1:6379>get mail
“lijie@gmail.com”
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 name@lijie.com
(integer)15
redis 127.0.0.1:6379>get name
“lijie@lijie.com”
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”