Redis五种数据类型:String、Hash、List、Set、SortedSet Redis中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。Redis是单线程的。Redis中不适合保存内容大的数据。 String:key-value(做缓存) set key值 value值 127.0.0.1:6379> set str1 abc OK get key值 127.0.0.1:6379> get str1 "abc" incr key值 将对应value值递增1 (生成id, 网站访问量) 127.0.0.1:6379> incr key1 (integer) 1 127.0.0.1:6379> incr key1 (integer) 2 127.0.0.1:6379> get key1 "2" decr key值 将对应value值递减1 127.0.0.1:6379> decr key1 #2减1等于1了 (integer) 1 127.0.0.1:6379> decr key1 (integer) 0 127.0.0.1:6379> decr key1 (integer) -1 127.0.0.1:6379> get key1 "-1" del key值 删除指定key值 127.0.0.1:6379> set key2 bbb OK 127.0.0.1:6379> keys * 1) "key1" 2) "key2" 3) "str1" 127.0.0.1:6379> del key2 (integer) 1 decrby key值 增量值 将对应value值按增量值递减 incrby key值 增量值 将对应value值按增量值递增 mset key值 value值 key值 value值 后面跟多个键值对 其他: keys * 查询redis中存储的所有key值 127.0.0.1:6379> keys * 1) "str1" Hash:key-fields-value(做缓存) 相当于一个key对于一个map,map中还有key-value 使用hash对key进行归类。 hset key fields values 向hash中key值添加内容fileds-value值 127.0.0.1:6379> hset hash1 field1 11 (integer) 1 127.0.0.1:6379> hset hash1 field2 22 (integer) 1 127.0.0.1:6379> hset hash1 field3 33 (integer) 1 hget key fields 从hash中key值取内容fileds中的value值 127.0.0.1:6379> hget hash1 field1 "11" 127.0.0.1:6379> keys * 查看所有key值 1) "key3" 2) "key4" 3) "hash1" 4) "key1" 5) "str1" hkeys key值 查看key值下面的所有field值 127.0.0.1:6379> hkeys hash1 查看hash正在的hash1下的所有field值 1) "field1" 2) "field2" 3) "field3" hvals key值 查看key值下面的所有value值 127.0.0.1:6379> hvals hash1 查询hash1下面的所有value值 1) "11" 2) "22" 3) "33" hgetall key值 查看key值下面的所有field-value键值对 127.0.0.1:6379> hgetall hash1 查询hash1下面的所有field-value 1) "field1" 2) "11" 3) "field2" 4) "22" 5) "field3" 6) "33" hdel key值 field值 删除指定key值下面的field值 127.0.0.1:6379> hkeys hash1 1) "field1" 2) "field2" 3) "field3" 127.0.0.1:6379> hdel hash1 field1 删除hash1下面的field1 (integer) 1 127.0.0.1:6379> hkeys hash1 1) "field2" 2) "field3" List:有顺序可重复(处理不完时,排队相关处理) lpush key值 value1值 value2值 … #向key的左边追加value值 127.0.0.1:6379> lpush list1 1 2 3 4 5 (integer) 4 #从左往右,查询key值中startIndex到endIndex的所有值, endIndex=-1表示最后 lrange key值 startIndex endIndex 127.0.0.1:6379> lrange list1 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" lpush key值 value1值 value2值 … #向key的右边追加value值 127.0.0.1:6379> rpush list1 a b c d f (integer) 10 127.0.0.1:6379> lrange list1 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" 6) "a" 7) "b" 8) "c" 9) "d" 10) "f" lpop key值 #从key值里的左边取出1个元素值,取出后从key值消失,返回取出的值 127.0.0.1:6379> lpop list1 "5" 127.0.0.1:6379> lrange list1 0 -1 1) "4" 2) "3" 3) "2" 4) "1" 5) "a" 6) "b" 7) "c" 8) "d" 9) "f" rpop key值 #从key值里的右边取出1个元素值,取出后从key值消失,返回取出的值 127.0.0.1:6379> rpop list1 "f" 127.0.0.1:6379> lrange list1 0 -1 1) "4" 2) "3" 3) "2" 4) "1" 5) "a" 6) "b" 7) "c" 8) "d" Set:元素无顺序,不能重复(去重) sadd key值 value1值 value2值 … #向key的添加value值 ,如果有重复数据会只保留一个 127.0.0.1:6379> sadd set1 a a b b c d (integer) 4 smembers key值 查询key值中所有value值 127.0.0.1:6379> smembers set1 1) "d" 2) "a" 3) "c" 4) "b" srem key值 value值 删除key值中的value值 127.0.0.1:6379> srem set1 d (integer) 1 127.0.0.1:6379> smembers set1 1) "a" 2) "c" 3) "b" 集合运算命令:差集sdiff 、交集sinter 、并集sunion: 127.0.0.1:6379> sadd seta a b c d (integer) 4 127.0.0.1:6379> sadd setb c d e f (integer) 4 sdiff key1值 key2值 取差集,取key1值集合中所特有的元素 127.0.0.1:6379> sdiff seta setb #取seta中所特有的 1) "a" 2) "b" 127.0.0.1:6379> sdiff setb seta #取setb中所特有的 1) "e" 2) "f" sinter key1值 key2值 取交集,取key1值与key2值集合中相同的元素 127.0.0.1:6379> sinter seta setb 1) "d" 2) "c" sunion key1值 key2值 取并集,取key1值与key2值集合中所有元素 127.0.0.1:6379> sunion seta setb 1) "d" 2) "f" 3) "c" 4) "b" 5) "a" 6) "e" SortedSet(zset):有顺序,不能重复 (服务器消耗最高,要排序还要去重,尽量少用,) zadd key值 分数1 value1 分数2 value2 … 向key的添加多个value值,按分数进行排序 192.168.25.153:6379> zadd zset1 1 a 3 b 2 c 4 d (integer) 4 #升序排列查询key值中startIndex到endIndex的所有值, endIndex=-1表示最后 zrange key值 startIndex endIndex 127.0.0.1:6379> zrange zset1 0 -1 1) "a" 2) "c" 3) "b" 4) "d" #降序排列查询key值中startIndex到endIndex的所有值, endIndex=-1表示最后 zrevrange key值 startIndex endIndex 127.0.0.1:6379> zrevrange zset1 0 -1 1) "d" 2) "b" 3) "c" 4) "a" zrem key值 value值 删除key值中会value值 127.0.0.1:6379> zrem zset1 a (integer) 1 127.0.0.1:6379> zrange zset1 0 -1 1) "c" 2) "b" 3) "d" zrange key值 0 -1 withscores 查询出key中的value与分数值 127.0.0.1:6379> zrange zset1 0 -1 withscores 1) "c" 2) "2" 3) "b" 4) "3" 5) "d" 6) "4" 设置key的过期时间: 1、expire key second:设置key的过期时间(秒) 127.0.0.1:6379> expire key1 100 key1在100秒后过期 (integer) 1 2、ttl key:查看key的有效期 127.0.0.1:6379> ttl key1 (integer) 73 大于0,还剩余多少秒存活时间 127.0.0.1:6379> ttl key1 (integer) -2 -2 不存在redis中, 127.0.0.1:6379> ttl list1 (integer) -1 -1 永久有效,持久化 3、persist key:清除key的过期时间。Key持久化。 127.0.0.1:6379> set str2 bbb 新增str2值 OK 127.0.0.1:6379> ttl str2 查看str2目前的有效期:持久化 (integer) -1 127.0.0.1:6379> expire str2 100 设置str2的有效期100秒 (integer) 1 127.0.0.1:6379> ttl str2 查看str2目前的有效期:倒计时 (integer) 96 127.0.0.1:6379> persist str2 清除str2的过期时间 (integer) 1 127.0.0.1:6379> ttl str2 查看str2目前的有效期:持久化 (integer) -1