redis的数据类型讲解相关命令

1、string类型

String是最简单的类型,一个 key对应一个 Value,String类型是二进制安全的。Redis的 string可以包含任何数据,比如 jpg图片或者序列化的对象。(1)set设置键,值

语法:set 键名称 值例如:我们添加一个 name="hanguo"的键值对。重新设置则直接覆盖。

redis的数据类型讲解相关命令

(2)get获取 key对应的 string值,如果 key不存在返回 nil,语法:get 键值

redis的数据类型讲解相关命令

(3)Setnx设置键时,先判断一下该键是否存在,如果 key已经存在,返回 0,nx是 not exist的意思。

若键已经存在,则设置不成功,返回 0

redis的数据类型讲解相关命令

(4)setex设置 key对应的值为 string类型的 value,并指定此键值对应的有效期。语法:setex 名称 有效期 值例如:我们添加一个 color = red的键值对,并指定有效期为 10秒。

redis的数据类型讲解相关命令

(5)setrange替换字符串中某些字符

语法:setrange 键名称 开始替换的序号 替换为的内容例如:我们希望将 hanguo的 sohu邮箱替换为 qq.com邮箱

redis的数据类型讲解相关命令

(6)mset一次设置多个 key的值,成功返回 ok表示所有的值都设置了,失败返回 0表示没有任何值被设置。

语法:

mset 名称 1 值 1 名称 2 值 2

redis的数据类型讲解相关命令

(7)msetnx一次设置多个 key的值,成功返回 ok表示所有的值都设置了,失败返回 0表示没有任何值被设置,但是不会覆盖已经存在的 key。

(8)getset设置 key的值,并返回 key的旧值。(设置新值,获取旧值。)

(9)getrange获取 key的 value值的范围内的子字符串getrange name 0 5(10)mget一次获取多个 key的值,如果对应 key不存在则对应返回 nil。

(11)incr对 key的值做加加操作,并返回新的值。incrby同 incr类似,加指定值,key不存在时候会设置 key,并认为原来的 value是 0。

(12)decr对 key的值做减减操作。decrby同 decr类似,减指定值

(13)append给指定 key的字符串追加 value,返回新字符串值的长度。

(14)strlen取指定 key的 value值的长度。

2、hashes类型

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

(1)hset设置 hash field为指定值,如果 key不存在,则先创建。语法:

hset 哈希名称 字段名称 值

(2)hget取出 hash field的值。语法:hget 哈希名称 字段名称

(3)hsetnx设置 hash field为指定值,如果 key不存在,则先创建,如果存在则返回 0。

redis的数据类型讲解相关命令

(4)hmset同时设置 hash的多个 field语法:hmset 哈希名称 field1 value1 field2 value2

(5)hmget获取全部指定的 hash field。语法:hmget 哈希名称 field1 field2

(6)hincrby指定的 hash field加上给定的值。

(7)hexists

测试指定的 field是否存在。

(8)hlen返回指定 hash的 field数量。

(9)hdel删除指定 hash的 field语法:hdel 哈希名 field

(10)hkeys返回 hash的所有 field

(11)hvals返回 hash的所有 value。

(12)hgetall获取某个 hash中全部的 field及 value

3、lists类型及操作

list是一个链表结构,主要功能是 push、pop、获取一个范围的所有值等等,操作中key 理解为链表的名字。redis的 list类型其实就是一个每个子元素都是 string类型的双向链表。我们可以通过 push、pop操作从链表的头部或者尾部添加删除元素,这样 list即可以作为栈,又可以作为队列。(1)lpush在 key对应 list的头部添加字符串元素。语法:lpush 链表名称 值内容

redis的数据类型讲解相关命令

(2)lrange获取链表里面的值,语法:lrange 链表名称 0 -1注意 0 和 -1 表示取值范围,从头部到尾部。

(3)rpush在 key对应 list的尾部添加字符串元素。语法:rpush 链表名称 值内容

(3)linsert在 key对应 list的特定位置前或后添加字符串。

redis的数据类型讲解相关命令

(4)lset设置 list中指定下标的元素值。注:下标从 0开始计算

(5)lrem从 key对应 list中删除 n个和 value相同的元素。(n<0从尾删除,n=0全部删除)

(6)ltrim保留指定 key的值范围内的数据。

redis的数据类型讲解相关命令

(7)lpop从 list的头部删除元素,并返回删除元素。

(8)rpop从 list的尾部删除元素,并返回删除元素。

(9)rpoplpush从第一个 list的尾部移除元素并添加到第二个 list的头部。

(10)lindex返回名称为 key的 list中 index位置的元素。

(11)llen返回 key对应 list的长度。

4、sets类型及操作

set是集合,它是 string类型的无序集合。set是通过 hash table实现的、添加、删除和查找的复杂度都是 0(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现 sns中的好友推荐和 blog的 tag功能。(1)sadd向名称为 key 的 set中添加元素。语法:sadd 集合名 元素

(2)smembers 获取集合中内容,语法:smembers 集合名称(3)srem删除名称为 key的 set中的元素.

(4)spop随机返回并删除名称为 key的 set中一个元素。

(5)sdiff返回所有给定 key与第一个 key的差集。

(6)sdiffstore返回所有给定 key与第一个 key的差集,并将结果存为另一个 key。语法:sdiffstore 新的集合 集合 1 集合 2

(7)sinter返回所有给定 key的交集.

(8)sinterstore返回所有给定 key的交集,并将结果存为另一个 key

(9)sunion返回所有给定 key的并集

(10)sunionstore返回所有给定 key的并集。

(11)smove从第一个 key对应的 set中移除 member并添加到第二个对应的 set中。

(12)scard返回名称为 key的 set的元素个数。

(11)sismember测试 member是否是名称为 key的 set的元素

(12)srandmember随机返回名称为 key的 set的一个元素,但不删除元素

5、sorted sets类型及操作

sorted set是 set的一个升级版本,他在 set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的 mysql表,一列存 value,一列存顺序。操作中的 key理解为 zset的名字。(1)zadd向名称为 key的 zset中添加元素。如果该元素存在,则更新其顺序。语法:zadd 集合名 序号 内容

(2)zrange获取有序集合中的内容

(3)zrem删除名称为 key的 zset中的元素 member。

(4)zincrby如果在名称为key的zset中已经存在元素member,则该元素的 score增加 increment否则向该集合中添加该元素,其 score的值为 increment。

(5)zrank返回名称为 key的 zset中 member元素的排名(按 score 从小到大排序)即下标。

(6)zrevrank返回名称为 key的 zset中 member元素的排名(按 score 从大到小排序)即下标。

(7)zrevrange返回名称为 key的 zset(按 score从大到小顺序)中的 index从 start到 end的所有元素。

(8)zrangebyscore返回集合中 score在给定区间的元素

(9)zcount返回集合中 score在给定区间的数量。

(10)zcard返回集合中元素的个数

(11)zremrangebyrank删除集合中排名在给定区间的元素。

(12)zremrangebyscore删除集合中 score在给定区间的元素。

6、redis常用命令

redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在linux终端使用。1、键值相关的命令(1)keys返回满足给定参数的所有 key用表达式*,代表取出所有的 key

(2)exists确认一个 key是否存在。

(3)expire设置一个 key的过期时间

(4)move:将当前数据库中的 key转移到其它数据库中。

(5)persist移除给定 key的过期时间

(6)randomkey随机返回 key空间的一个 key

(7)rename重命名 key

(8)type:返回值的类型

2、服务器相关命令(1)select选择数据库。redis数据库编号从 0-15,我们可以选择任意一个数据库来进行数据的存取。

当选择 16时,报错,说明没有编号为 16的这个数据库。

(2)quit退出连接

(3)dbsize返回当前数据库中 key的数目

(4)info获取服务器的信息和统计。

(5)config get获取参数的配置。

本例中我们获取了 dir这个参数配置的值,如果想获取全部参数的配置只需要执行"config get *"即可将全部的值都显示出来

redis的数据类型讲解相关命令

(6)flushdb删除当前选择数据库中的所有 key

(7)flushall删除所有数据库中的所有的 key


分享到:


相關文章: