Redis中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。Redis是单线程的。Redis中不适合保存内容大的数据。
(1)get、set(存取)。示例:set str1 abc;get str1
(2)keys *(查询所有key)。
(3)incr(加1);decr(减1)。示例 incr key1;decr key1(对该key对应的value进行加减,必须保证value可以转换为整数<字符串形式保存>)
(4)del(删除key)。示例:del key1
每个key对应一个hash,hash为value,其中hash中还有hash的key-value。
(1)hget、hset(存取)。示例:hset hash1 field1 value1,hset hash1 field2 value2;hget hash1 field1
(2)hkeys(查询某个key下面所有的hashkey,即所有的field)。示例:hkeys hash1
(3)hvals(查询某个key下面所有的hashvalue)。示例:hvals hash1
(4)hgetall(查询某个key下面所有的hashkey-hashvalue)。示例:hgetall hash1
(5)hdel(删除hashkey以及对应的hashvalue)。示例:hdel hash1 field1
每个key对应一个list,list元素有顺序,可以重复。
(1)lpush(从左边添加一个list)。示例:lpush list1 1 2 3 4 5
(2)rpush(从右边添加一个list)。示例:rpush list1 a b c d e
(3)lrange key 参数1 参数2(从左边开始查看元素,参数1为起始位置,参数2为终止位置)。示例:lrange list 0 -1,即为从左边开始查看全部元素,如上元素取出即为:5 4 3 2 1 a b c d e
(4)lpop(从左边开始取元素,取出后从该list删除该元素)。示例:lpop list1
set中元素没有顺序且不能重复,如果有重复会被过滤掉(可以用set去重)。
(1)sadd(添加元素)。示例:sadd set1 a b c
(2)srem(删除元素)。示例:srem set1 a
(3)smembers(查看set中元素)。示例:smembers set1
(4)sdiff(查看两个set集合的差集,前面集合减去后面集合)。示例:sdiff set1 set2
(5)sinter(查看两个集合的交集)。示例:sinter set1 set2
(6)sunion(查看两个集合的并集)。示例:sunion set1 set2
有顺序的set集合。很耗费性能。
(1)zadd(添加元素)。示例:zadd zset1 1 a 3 b 2 c 5 d 4 e(按照元素前面的分数进行升序排列)
(2)zrange key 参数1 参数2(查看元素,参数1为起始位置,参数2为终止位置)。示例:zrange zset1 0 -1,如上添加的zset1,则为a c b e d
(3)zrem(删除元素)。示例:zrem zset1 a
(4)zrevrange key 参数1 参数2(查看降序排列后的集合,参数1,参数2同上)。示例:zrevrange zset1 0 -1
(5)withscores(查看命令之后加此命令,可同时查看该值对应的分数)。示例:zrange zset1 0 -1 withscores
(1)expire(设置过期时间)。示例:expire key1 100(设置key1的过期时间为100秒)
(2)ttl(查看过期剩余时间)。示例:ttl key1(结果为——正数:正在倒计时;-1:永久存在;-2:不存在)
(3)persist(清除过期时间,使该key永久保存)。示例:persist key1
redis一共五种数据类型,一般常用的有string和hash,不是非常必要的情况下,不推荐使用sorted set,非常消耗资源。