Redis之数据类型大全
一:String类型
1、set方法:设置key对应的值为string类型的value,如果该key已经存在,则覆盖key对应的value值。所以在redis中key只能有一个。 127.0.0.1:6379> set name lijie 2、get:根据key获取value值 127.0.0.1:6379> get name 3、Setnx:设置key对应的值为tring类型的value,如果key已经存在,返回0 表示无法再对该key设置新值,返回1 表示设置新值成功,nx是not exit的意思。 127.0.0.1:6379> setnx name zs (integer) 0 127.0.0.1:6379> setnx age 20 (integer) 1 4、setex:设置key对应的值为string类型的value,并指定该key-value对应的有效期。 127.0.0.1:6379> setex color 10 red OK 立即查询 127.0.0.1:6379> get color "red" 10秒后查询 127.0.0.1:6379> get color (nil) 5、Setrange:设置指定key的value值的子字符窜。 127.0.0.1:6379> set email jalja@sina.com OK 127.0.0.1:6379> get email "jalja@sina.com" 127.0.0.1:6379> setrange email 6 163.com (integer) 14 127.0.0.1:6379> get email "jalja@163.comm" 6、Mset:一次设置多个key-value,返回OK表示全部设置成功,返回0表示全部失败 127.0.0.1:6379> mset name1 zs name2 ls OK 127.0.0.1:6379> get name1 "zs" 127.0.0.1:6379> get name2 "ls" 7、msetnx:一次设置多个key-value,返回1表示全部设置成功,返回0表示全部失败。该方式不会覆盖已经存在的key 127.0.0.1:6379> msetnx name3 kk name4 mm name2 LL (integer) 0 127.0.0.1:6379> get name3 (nil) 127.0.0.1:6379> get name4 (nil) 8、getset:设置key值,并返回key的旧值 127.0.0.1:6379> getset name4 UU (nil) 127.0.0.1:6379> get name4 "UU" 127.0.0.1:6379> getset name4 RR "UU" 9、getrange:获取key对应value的子字符串 127.0.0.1:6379> get email "jalja@163.comm" 127.0.0.1:6379> getrange email 0 4 "jalja" 10、mget:一次获取多个key对应的value值,不存在返回nil 127.0.0.1:6379> mget name1 name2 name3 name4 name5 1) "zs" 2) "ls" 3) (nil) 4) "RR" 5) (nil) 11、incr:对key对应的value做加加操作,并返回新值 127.0.0.1:6379> get age "20" 127.0.0.1:6379> incr age (integer) 21 12、incrby:与incr类似,加指定值,key不存在的时候会设置key,并认为该key原来的value=0 127.0.0.1:6379> get age "21" 127.0.0.1:6379> incrby age 9 (integer) 30 127.0.0.1:6379> incrby age -5 (integer) 25 127.0.0.1:6379> incrby height 10 (integer) 10 13、decr:对key对应的value做递减操作 127.0.0.1:6379> get height "10" 127.0.0.1:6379> decr height (integer) 9 127.0.0.1:6379> decr height (integer) 8 14、decrby:对key对应的value减去指定的值 127.0.0.1:6379> get height "8" 127.0.0.1:6379> decrby height 3 (integer) 5 127.0.0.1:6379> decrby height -3 (integer) 8 15、append:对key对应的vlaue字符串追加,返回新字符串的长度 127.0.0.1:6379> get name1 "zs" 127.0.0.1:6379> append name1 ML (integer) 4 127.0.0.1:6379> get name1 "zsML" 16、strlen:获取key对应value的长度 127.0.0.1:6379> get name1 "zsML" 127.0.0.1:6379> strlen name1 (integer) 4
二:Hash类型
1、hset:设置hash filed 为指定值,如果key不存在,则先创建。 127.0.0.1:6379> hset user:001 name zs (integer) 1 127.0.0.1:6379> hget user:001 name "zs" 设置一个user:001 的用户的name为zs(可以将user:001看做一个表) 2、 hsetnx:设置hash filed 为指定值,如果key不存在,则先创建。如果存在则返回0表示设置失败。 127.0.0.1:6379> hsetnx user:001 name ML (integer) 0 127.0.0.1:6379> hsetnx user:001 age 1 (integer) 1 3、hmset:同时设置hash的多个file 127.0.0.1:6379> hmset user:002 name MM age 20 OK 127.0.0.1:6379> hget user:002 name "MM" 127.0.0.1:6379> hget user:002 age "20" 4、hmget:获取全部指定的hash filed 127.0.0.1:6379> hmget user:002 name age 1) "MM" 2) "20" 5、hincrby:对hash filed加上指定的值 127.0.0.1:6379> hget user:002 age "20" 127.0.0.1:6379> hincrby user:002 age 5 (integer) 25 127.0.0.1:6379> hincrby user:002 age -5 (integer) 20 6、hexists:测试指定的filed是否存在,返回1表示存在,返回0表示不存在 127.0.0.1:6379> hexists user:002 name (integer) 1 127.0.0.1:6379> hexists user:002 age (integer) 1 127.0.0.1:6379> hexists user:002 height (integer) 0 7、hlen:返回指定hash的field的数量 127.0.0.1:6379> hlen user:002 (integer) 2 8、hdel 删除指定hash 的filed字段,返回1表示删除成功0:表示删除失败 127.0.0.1:6379> hget user:002 age "20" 127.0.0.1:6379> hdel user:002 age (integer) 1 127.0.0.1:6379> hdel user:002 age (integer) 0 127.0.0.1:6379> hget user:002 age (nil) 9、hkeys:返回hash 的所有filed 127.0.0.1:6379> hkeys user:001 1) "name" 2) "age" 127.0.0.1:6379> hkeys user:002 1) "name" 10、hvals:返回hash的所有value 127.0.0.1:6379> hvals user:001 1) "zs" 2) "1" 127.0.0.1:6379> hvals user:002 1) "MM"
三:List类型
1、Lpush:在key对应list的头部添加字符串元素,返回list中元素的个数 127.0.0.1:6379> lpush list1 "hello" (integer) 1 127.0.0.1:6379> lpush list1 "word" (integer) 2 2、lrange:获取list中的元素, 127.0.0.1:6379> lrange list1 0 -1(0:第一个,-1:最后一个) 1) "word" 2) "hello" 3、rpush:在key对应的list尾部添加元素 127.0.0.1:6379> rpush list2 10 (integer) 1 127.0.0.1:6379> rpush list2 11 (integer) 2 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "11" 4、Linsert:在key对应list的特定位置前或后添加字符串 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "11" 127.0.0.1:6379> linsert list2 before 11 10.5 (integer) 3 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "10.5" 3) "11" 5、lset:更改list中指定下标的元素,返回ok表示设置成功 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "10.5" 3) "11" 127.0.0.1:6379> lset list2 1 10.00 OK 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "10.00" 3) "11" 6、lrem:从key对应list中删除n个和value相同的元素(n<0 从尾部删除,n=0 全部删除) 127.0.0.1:6379> lrange list 0 -1 1) "two" 2) "one" 3) "one" 127.0.0.1:6379> lrem list 1 one (integer) 1 127.0.0.1:6379> lrange list 0 -1 1) "two" 2) "one" 7、ltrim:保留list中指定范围的数据 127.0.0.1:6379> lrange list2 0 -1 1) "10" 2) "10.00" 3) "11" 4) "12" 127.0.0.1:6379> ltrim list2 1 2 OK 127.0.0.1:6379> lrange list2 0 -1 1) "10.00" 2) "11" 8、lpop:从list的头部删除元素,并返回该元素 127.0.0.1:6379> lrange list 0 -1 1) "two" 2) "one" 127.0.0.1:6379> lpop list "two" 127.0.0.1:6379> lrange list 0 -1 1) "one" 9、rpop:从list尾部删除元素,并返回该元素 10、rpoplpush:从第一个list的尾部删除元素,并添加到第二个list的头部 127.0.0.1:6379> lrange list 0 -1 1) "one" 127.0.0.1:6379> lrange list1 0 -1 1) "word" 2) "hello" 127.0.0.1:6379> rpoplpush list1 list "hello" 127.0.0.1:6379> lrange list 0 -1 1) "hello" 2) "one" 127.0.0.1:6379> lrange list1 0 -1 1) "word" 11、lindex 返回名称为key的list中index位置的元素 127.0.0.1:6379> lrange list 0 -1 1) "hello" 2) "one" 127.0.0.1:6379> lindex list 1 "one" 12、llen:返回指定key对应list的长度 127.0.0.1:6379> lrange list 0 -1 1) "hello" 2) "one" 127.0.0.1:6379> llen list (integer) 2
四:Sets类型
1、 sadd:向key对应的set集合中添加元素,返回1表示添加成功,返回0 表示失败 127.0.0.1:6379> sadd myset1 one (integer) 1 127.0.0.1:6379> sadd myset1 two (integer) 1 2、Smembers:查看set集合中的元素 127.0.0.1:6379> smembers myset1 1) "two" 2) "one" 3、srem:删除key对应set集合中的元素,返回1表示删除成功 0表示失败 127.0.0.1:6379> srem myset1 two (integer) 1 4、spop:随机删除set中的一个元素并返回该元素 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 3) "four" 127.0.0.1:6379> spop myset1 "four" 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 5、sdiff:返回给定set集合的差集 (以在前的set集合为标准) 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sdiff myset1 myset2 1) "three" 127.0.0.1:6379> sdiff myset2 myset1 1) "two" 6、sdiffstore:返回所有给定set集合的差集,并将差集添加到另外一个集合中 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sdiffstore myset3 myset1 myset2 (integer) 1 127.0.0.1:6379> smembers myset3 1) "three" 7、sinter:返回所有给定集合的交集 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sinter myset1 myset2 1) "one" 8、sinterstore:返回所有给定集合key的交集,并将结果存为另一个key 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sinterstore myset4 myset1 myset2 (integer) 1 9、返回所有给定集合的并集 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sunion myset1 myset2 1) "three" 2) "two" 3) "one" 10、sunionstore 返回所有给定集合的并集,并将结果存入另一个集合 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sunionstore myset5 myset1 myset2 (integer) 3 11、smove:从第一个集合中移除元素并将该元素添加到另一个集合中。 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset5 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> smove myset5 myset1 two (integer) 1 127.0.0.1:6379> smembers myset5 1) "three" 2) "one" 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 12、Scard:返回set集合中元素的个数 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> scard myset1 (integer) 3 13、sismember:测试member元素是否是名称为key的set集合 返回1:表示是 0:不是 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> sismember myset1 tree (integer) 0 127.0.0.1:6379> sismember myset1 three (integer) 1 14、srandmember:随机返回set集合中的一个元素,但不删除该元素 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> srandmember myset1 "one"
五:Sorted sets类型
1、 sadd:向key对应的set集合中添加元素,返回1表示添加成功,返回0 表示失败 127.0.0.1:6379> sadd myset1 one (integer) 1 127.0.0.1:6379> sadd myset1 two (integer) 1 2、Smembers:查看set集合中的元素 127.0.0.1:6379> smembers myset1 1) "two" 2) "one" 3、srem:删除key对应set集合中的元素,返回1表示删除成功 0表示失败 127.0.0.1:6379> srem myset1 two (integer) 1 4、spop:随机删除set中的一个元素并返回该元素 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 3) "four" 127.0.0.1:6379> spop myset1 "four" 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 5、sdiff:返回给定set集合的差集 (以在前的set集合为标准) 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sdiff myset1 myset2 1) "three" 127.0.0.1:6379> sdiff myset2 myset1 1) "two" 6、sdiffstore:返回所有给定set集合的差集,并将差集添加到另外一个集合中 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sdiffstore myset3 myset1 myset2 (integer) 1 127.0.0.1:6379> smembers myset3 1) "three" 7、sinter:返回所有给定集合的交集 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sinter myset1 myset2 1) "one" 8、sinterstore:返回所有给定集合key的交集,并将结果存为另一个key 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sinterstore myset4 myset1 myset2 (integer) 1 9、返回所有给定集合的并集 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sunion myset1 myset2 1) "three" 2) "two" 3) "one" 10、sunionstore 返回所有给定集合的并集,并将结果存入另一个集合 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset2 1) "two" 2) "one" 127.0.0.1:6379> sunionstore myset5 myset1 myset2 (integer) 3 11、smove:从第一个集合中移除元素并将该元素添加到另一个集合中。 127.0.0.1:6379> smembers myset1 1) "three" 2) "one" 127.0.0.1:6379> smembers myset5 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> smove myset5 myset1 two (integer) 1 127.0.0.1:6379> smembers myset5 1) "three" 2) "one" 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 12、Scard:返回set集合中元素的个数 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> scard myset1 (integer) 3 13、sismember:测试member元素是否是名称为key的set集合 返回1:表示是 0:不是 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> sismember myset1 tree (integer) 0 127.0.0.1:6379> sismember myset1 three (integer) 1 14、srandmember:随机返回set集合中的一个元素,但不删除该元素 127.0.0.1:6379> smembers myset1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> srandmember myset1 "one"