数据类型
Redis是一个key-value存储系统,存储的数据都是key-value格式的,key固定是String类型,value类型可以是:
- String
 
- Hash:和HashMap一样,由key-value组成
 
- List:列表,有序的,按插入顺序排序,可以指定从头部插入还是尾部插入,可以含重复值
 
- Set:集合,无序的,不含重复值(插入重复值不会成功也不会报错)
 
- ZSet:有序集合,比Set多一个排序用的score字段,有序的,不含重复值,score值可以重复
 
CRUD命令
String
1 2 3 4 5 6 7 8
   | 127.0.0.1:6379> set cys ccc -- 增 OK 127.0.0.1:6379> get cys -- 查 "ccc" 127.0.0.1:6379> set cys yyy -- 改 OK 127.0.0.1:6379> del cys -- 删 (integer) 1
   | 
 
注意:del命令就是删掉整个key-value,无论value是什么格式。所以下面的Hash、List等整个删除也是用del。
要查看新增、删除结果,可以用如下方法查看:
1 2
   | 127.0.0.1:6379> keys * -- 查看所有key,可以看到新增的key,看不到已删除的key 1) "cys"
   | 
 
Hash
1 2 3 4 5 6 7 8 9 10
   | 127.0.0.1:6379> hmset cyshash name cys age 22 -- 增,新增Map并添加元素,cyshash就是Map名字 OK 127.0.0.1:6379> hset cyshash age 23 -- 改单个元素 (integer) 0 127.0.0.1:6379> hmset cyshash city shenzhen -- 改,给Map添加元素 OK 127.0.0.1:6379> hdel cyshash age -- 删Map中单个元素 (integer) 1 127.0.0.1:6379> del cyshash -- 删整个Map (integer) 1
   | 
 
查:
1 2 3 4 5 6 7 8 9 10
   | 127.0.0.1:6379> hgetall cyshash -- 查整个Map 1) "name" 2) "cys" 3) "age" 4) "22" 127.0.0.1:6379> hget cyshash name -- 查单个元素 "cys" 127.0.0.1:6379> hmget cyshash name age -- 同时查多个元素 1) "cys" 2) "22"
   | 
 
List
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   | 127.0.0.1:6379> lpush cyslist a -- 增,新增List并添加一个元素 (integer) 1 127.0.0.1:6379> llen cyslist -- 查List长度 (integer) 1 127.0.0.1:6379> lrange cyslist 0 2 -- 查,限定List下标范围查包含元素 1) "a" 127.0.0.1:6379> lpush cyslist b c d f -- 改,给List添加元素 (integer) 5 127.0.0.1:6379> lset cyslist 0 e -- 改,改某个下标的值 OK 127.0.0.1:6379> lrange cyslist 0 10 -- 可以看到0位"f"改成了"e" 1) "e" 2) "d" 3) "c" 4) "b" 5) "a" 127.0.0.1:6379> lpop cyslist -- 删一个元素,返回被删的元素值 "e" 127.0.0.1:6379> del cyslist -- 删整个List (integer) 1
   | 
 
注意:List的添加、删除元素可以在头尾两端添加,上面的lpush是在头部添加,lpop是在头部删除。
Set
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   | 127.0.0.1:6379> sadd cysset abc 123 -- 增,新增Set并添加元素 (integer) 2 127.0.0.1:6379> smembers cysset -- 查所有元素 1) "123" 2) "abc" 127.0.0.1:6379> sadd cysset dfh 098 -09 -- 改,给Set添加元素 (integer) 1 127.0.0.1:6379> smembers cysset -- 可以看到元素无序 1) "dfh" 2) "098" 3) "123" 4) "abc" 5) "-09" 127.0.0.1:6379> spop cysset -- 删除尾部一个元素 "-09" 127.0.0.1:6379> srem cysset 098 -- 删除指定元素 (integer) 1 127.0.0.1:6379> del cysset -- 删整个Set (integer) 1
   | 
 
注意:Set因为无序,所以不能指定下标或下标范围查找元素,也不能指定下标修改元素。另外,Set还有求多个Set之间交集、差集、并集的命令。
ZSet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
   | 127.0.0.1:6379> zadd cyszet 1 a 2 b 3 c -- 增,新增ZSet并添加元素 (integer) 3 127.0.0.1:6379> zrange cyszet 0 10 -- 查,下标在0~10的元素 1) "a" 2) "b" 3) "c" 127.0.0.1:6379> zrange cyszet 0 10 WITHSCORES -- 查,下标在0~10的元素,结果带分数 1) "a" 2) "1" 3) "b" 4) "2" 5) "c" 6) "3" 127.0.0.1:6379> zrangebyscore cyszet 2 3 -- 查,分数在2~3的元素,这个方法也可以带 WITHSCORES 1) "b" 2) "c" 127.0.0.1:6379> zscore cyszet c -- 查,某个元素的分数 "3" 127.0.0.1:6379> zadd cyszet 4 d 5 f -- 改,给ZSet添加元素 (integer) 2 127.0.0.1:6379> zrem cyszet a -- 删,指定元素 (integer) 1 127.0.0.1:6379> zrange cyszet 0 10 -- 删指定元素的结果 1) "b" 2) "c" 3) "d" 4) "f" 127.0.0.1:6379> zremrangebyrank cyszet 0 1 -- 删,按下标范围删除元素 (integer) 2 127.0.0.1:6379> zrange cyszet 0 10 -- 按下标范围删除元素的结果 1) "d" 2) "f" 127.0.0.1:6379> del cyszet -- 删整个ZSet (integer) 1
   | 
 
注意:ZSet有根据下标区间、分数区间、字典区间查找、删除元素的方法,还有求多个ZSet之间交集、并集的命令。
操作Key的命令
1 2 3 4 5 6
   | 127.0.0.1:6379> keys * -- 查看所有key 1) "cysset" 127.0.0.1:6379> type cysset -- 查看key对应value类型 set 127.0.0.1:6379> expire cysset 2 -- 设置key在2秒后过期 (integer) 1
   | 
 
其余还有很多,没列出来。