Redis的String、Hash类型命令
String是最简单的类型,一个Key对应一个Value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。最大上限是1G字节。
Hash是一个string类型的field和value的映射表。它的添加、删除操作都是0(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
String字符类型 | Hash类型 | |
设置一个键值 | >set name zhangsan 返回:OK |
>hset h1 name zhangsan 设置新键返回int 1;覆盖旧值返回int 0; |
批量设置多个键值 | >mset name zhangsan age 20 address china-beijing 批量设置name age address三个键(新值覆盖旧值) 成功返回OK,失败报错。 |
>hmset h1 name zhangsan age 22 city beijing 批量设置name age city三个值(新值覆盖旧值) 成功返回OK,失败报错。 |
设置一个事先不存在的键值 | >setnx color red nx = not exist不存在的 返回:int 1/0 |
>hsetnx h1 city 'new york' nx = not exist不存在的 返回:int 1/0 |
批量设置多个事先不存在的键值 | >msetnx school beida room 205 全部成功返回int 1,失败返回int 0,一个失败均失败。 |
|
设置一个有生命周期的键值 | >setex address 10 'china beijing chaoyang' ex = expir[ɪks'pər]生存时间 单位:秒 |
|
获取原值并重设新值 | >getset name lisi 设置一个新值 "zhangsan" 返回原值 |
|
部分设置某键的值(替换) | >setrange email 7 @gmail.com 从第7个偏移开始替换 >setrange name 0 lisi 从第0个偏移开始替换(从开头替换) (integer) 8 成功返回替换后的字符长度(字节数) 注:偏移n1从0计数,不可为负值 |
|
向尾部追加值 | >append name 'lisi wangwu' 在字符末尾追加一段字符串,返回新值长度 |
|
指定键自增:+1 | >incr age 使整型数自增:+1 注:键若不存在就创建一个值为0的值并开始计算 |
|
指定键自增:+n | >incrby age 3 使整型数据自增:+n,也可指定负值达到自减:-n目的 注:键若不存在就创建一个值为0的值并开始计算 |
>hincrby h1 age 2 使整型数据自增+n,也可指定负值达到自减:-n目的 注:键若不存在就创建一个值为0的值并开始计算 |
指定键自减:-1 | >decr age | |
指定键自减:-n | >decrby age 2 | |
获取一个键值 | >get name | >hget h1 name |
批量获取多个键值 | >mget name age address | >hmget h1 name age sex |
部分获取某键的值(字符串) | >getrange name 2 3 "ang" 注:第一个偏移从首0计数(需n1>=0),第二个偏移正负均可(首、尾偏移值均为-1); 本例name原值为zhangsan |
|
获取字符长度 | >strlen name 获取name的长度,单位:字节 |
|
获取数据库中所有键名 | >keys * 获取数据库中所有键名 >keys nam* 获取数据库中所有以“name”开头的键名 >keys nam*g 获取数据库中所有以“name”开头,并以“g”结尾的键名 |
>hkeys h1 获取h1内的所有键名; 注:每次只能获取1个hash表 |
【hash】获取单hash表所有值 | >hvals h1 获取h1表的所有“值”; 注:每次只能获取1个hash表 |
|
【hash】获取单hash表所有 的“键-值”组合 |
>hgetall h1 获取h1内的所有“键-值”组合; 注:每次只能获取1个hash表 |
|
【hash】判断某单个键是否存在 | >hexists h1 age 判断age键是否存在,存在返回int 1,否则返回int 0 注:每次只能查看1个键 |
|
【hash】获取指定表的键的总数 | >hlen h1 查看h1表的总的键的个数 注:每次只能查看1个hash表 |
|
【hash】删除表的若干个键 | >hdel h1 age 删除h1表的age键 >hdel h1 name city 删除h1表的name city多个键 注:每次可删除多个键 |
|