一、string类型:
(1)set :设置key对应的值为string类型的value,例:set name helloworld
(2)get :获取key对应的值为string类型的value,例:get name
(3)setnx : 如果key已经存在,返回0设置失败,nx即not exist,例: setnx name helloworld
(4)setex : 设置key的有效期, 例:setex name 10 helloworld (10秒)
(5)setrange :替换value的字符, 例:setrange name 5 hiyou
(6)mset :设置多个,失败返回0全部不成功,例:mset name1 hello name2 9
(7)msetnx :设置多个,如果key已经存在,返回0全部不成功,例:msetnx name3 hello name2 9
(8)getset :返回旧值设置新值,例:getset name hiyou
(9)getrange :获取子字符串,例:getrange name 5 10(从第5个截取到第10个字符)
(10)mget :获取多个,例:mget name1 name2
(11)incr :数值自增1,返回自增后的值,例:incr name2
(12)incrby :数值自增n(可为负值),返回自增后的值,例:incr name2 5
(13)decr :数值自减1,返回自减后的值,例:decr name2 5
(14)decrby :数值自减n(可为负值),返回自减后的值,例:decrby name2 5
(15)append :给value追加字符串,返回新增加后字符串长度,例:append name hi
(16)strlen :获取字符串长度,例:strlen name
二、hash类型:string类型的field和value映射表,适合存对象
(1)hset:设置hash(表) field(字段)的值,例:hset biao ziduan1 hello
(2)hget:获取hash(表) field(字段)的值,例:hget biao ziduan1
(3)hsetnx:设置hash(表) field(字段)的值,如果已经存在,返回0设置失败,例:hsetnx biao ziduan1 hello
(4)hmset:设置多个 field(字段)的值,例:hmset biao ziduan1 hello ziduan2 world
(5)hmget:获取多个 field(字段)的值,例:hmget biao ziduan1 ziduan2
(6)hincrby:hash(表) field(字段)数值自增n(可为负值),返回自增后的值,例:hincrby biao ziduan1 5
(7)hexists:判断hash(表)的field(字段)自否存在,0不存在,1存在,例:hexists biao ziduan1
(8)hlen:获取hash(表)的field(字段)数,例:hlen biao
(9)hdel:删除ash(表) 的field(字段),例:hdel biao ziduan1
(10)hkeys:获取hash(表)所有的field(字段),例:hkeys biao
(11)hvals:获取hash(表)所有的值,例:hvals biao
(12)hgetall:获取hash(表)所有的field(字段)和值,例:hgetall biao
三、list类型:链表机构,主要功能是push、pop、获取一个范围的所有值等,操作key理解为链表的名字。redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加、删除元素,这样list既可以作为栈,又可以作为队列。
(1)lpush:在key对应的list的头部添加字符元素,例:lpush list hello
(2)rpush:在list的尾部添加字符元素,例:rpush list world
(3)lrange:获取list里的值,例:lrange list 0 -1(-1代表最后);
(4)linsert:在list特定位置添加字符串,例:linsert list before hi nihao
(5)lset:替换list中指定下标的元素,例:lset list 2 lu
(6)lrem:list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除),例:lrem list 1 hi
(7)ltrim:保留指定key的值范围内的数据,其余的删掉,例:ltrim list 2 3
(8)lpop:从list头部删除元素,返回删除值,例:lpop list
(9)rpop:从list尾部删除元素,返回删除值,例:rpop list
(10)rpoplpush:从第一个list的尾部移除元素并添加到第二个list头部,返回该元素,例:rpoplpush list1 list2
(11)lindex:返回list中index位置的元素,例:lindex list 2
(12)llen:返回list元素个数,例:llen list
四、set类型:是string类型的无序集合。通过hash tables实现,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
(1)sadd:向集合中添加元素,例:sadd name hello
(2)smembers:获取集合的元素,例:smembers name
(3)srem:删除元素,例:srem name hello
(4)spop:随机删除一个元素,例:spop name
(5)sdiff:返回两个集合的差集,例:sdiff name1 name2 (name1-name2)
(6)sdiffstore:返回差集,将差集存入另一个集合,例 :sdiffstore name3 name1 name2
(7)sinter:返回两个集合的交集,例:sinter name1 name2
(8)sinterstore:返回交集,将交集存入另一个集合,例 :sinterstore name3 name1 name2
(9)sunion:返回两个集合的并集,例:sunion name1 name2
(10)sunionstore:返回并集,将并集存入另一个集合,例 :sunionstore name3 name1 name2
(11)smove:将元素从一个集合移到另一个集合,例:smove name1 name2 hi
(12)scard:获取集合元素个数,例:scard name
(13)sismember:判断集合中是否存在该元素,例:sismember name hi
(14)srandmember:随机返回集合的一个元素,例:srandmember name
五、sorted set类型:有序集合,set的升级版,增加了顺序属性,这一属性在增加修改元素时可以指定,每次指定后,zset会自动按新的值调整顺序。
(1)zadd:向集合中添加元素,该元素若存在,则更新其顺序,例:zadd name 1 hello
(2)zrange:获取集合元素,例:zrange name 0 -1 withscores
(3)zrem:删除指定元素,例:zrem name hi
(4)zincrby:如果集合中存在该元素,则该元素的下标增加n,否则向该集合中添加该元素,其下标增值为n,例:zincrby name 2 hi
(5)zrank:从小到大排序后,返回元素的下标,例:zrank name hi
(6)zrevrange:从大到小排序后,返回所有元素,例:zrevrange name hi
(7)zrangebyscore:根据下标范围,获取元素,例:zrangebyscore name 2 3 withscores
(8)zcount:根据下标范围,获取元素数,例:zcount name 2 3
(9)zcard:获取集合元素总数,例:zcard name
(10)zremrangebyrank:根据下标范围,删除元素,例:zremrangebyrank name 2 3
(11)zremrangebyscore:根据顺序范围,删除元素,例:zremrangebyscore name 2 3
六、键值相关命令
(1)keys:满足给定pattren的所有key,例:keys *
(2)exists:确认一个key是否存在,例:exists name
(3)del:删除一个key,例:del name
(4)expire:设置一个key的过期时间,例:expire name 10
(5)move:将当前的key转移到其他数据库,例:move name 1
(6)select:选择数据库,例:select 0 (选择当前数据库,共0-15)
(7)persist:移除给定的过期时间,例:persist name
(8)randomkey:随机返回key空间的一个key,例:randomkey
(9)rename:重命名key,例:rename name1 name2
(10)type:返回key的类型,例:type name
七、服务器的相关命令
(1)ping:测试连接是否存活,例:ping
(2)echo:输出,例:echo hello
(3)dbsize:返回当前数据库中key的数目,例:dbsize
(4)info:获取服务器的信息和统计,例:info
(5)config get:实时转存收到的请求,例:config get name
(6)flushdb:删除当前数据库的所有key,例:flushdb
(7)flushall:删除所有数据库的所有key,例:flushall