一、Redis简介
1、是一种NoSQL(Not only SQL)数据库,即非关系型数据库。
2、存储键值对。
3、Windows版本下载链接:Redis Windows版
二、Redis可视化工具
自带的 redis-cli.exe 只有一个黑漆漆的命令窗口,有时候感觉不是很方便。
献上一个Redis可视化管理工具:Redis Desktop Manager,是【个人开发者】编写的,最新版的要收费!
下载链接:Redis Desktop Manager
三、Redis常用命令
Redis支持5种常用类型:字符串String、哈希Hash(即Map)、列表List(可重复)、集合Set(不可重复)、有序集合Sorted Set(不可重复、有序)。
下面的命令都是在redis-cli.exe中执行的!
1、字符串String
1.1、存储/覆盖:set 键名 键值
存储(Redis中尚无该key)示例:set name Tom
覆盖(Redis中已有该key)示例:set name Jack
1.2、取值:get 键名
示例:get name
1.3、删除:del 键名
示例:del name
2、哈希Hash(即Map)
2.1、存储(Map中只有一个键值对):hset Redis中的键名(即Map名) Map中的键名 Map中的键值
示例:hset grades math 100
2.2、存储(Map中有多个键值对):hmset 【Redis中的键名(即Map名)】 【Map中的键名1】 【Map中的键值1】 【Map中的键名2】 【Map中的键值2】 …
示例: hmset family dad Tom mom Mary (注:hmset中的h指Hash,m指Multi)
2.3、获取Redis键名对应的Map中某个key的值:hget 【Redis键名(即Map名)】 【Map中的某个key】
示例:hget family dad
2.4、获取Redis键名对应的Map中的全部键值对:hgetall 【Redis中的键名】
示例:hgetall family
2.5、删除Redis键名对应的Map中的一个或多个键值对:hdel 【Redis中的键名(即Map名)】 【Map中的键名1】 【Map中的键名2】 …
示例:hdel family dad
3、列表List(可重复)
3.1、往列表右端添加一个或多个元素:rpush 键名(即List的名字) 元素1 元素2 … (注:rpush中的r指right)
示例:rpush TopRich WangJianlin WangWei
3.2、往列表左端添加一个或多个元素:lpush 键名(即List的名字) 元素1 元素2 … (注:lpush中的l指left)
示例:lpush TopRich MaHuateng MaYun
3.3、获取某个范围内的元素:lrange 键名(即List的名字) 起始元素的索引(含) 终止元素的索引(含) (注:第一个的索引为0,最后一个的索引可用-1表示;有lrange,但没有rrange)
示例:lrange TopRich 0 1
示例(获取列表中的所有元素):lrange TopRich 0 -1 (这里等价于:lrange TopRich 0 n,n可以为3、4、5……)
根据这个结果,我们可以总结出前面使用lpush和rpush时元素的添加顺序:lpush是越早添加的越靠右,rpush是越早添加的越靠左!
3.4、删除列表中最左端的元素并将其返回给用户:lpop 键名(即List的名字)
示例:lpop TopRich
3.5、删除列表中最右端的元素并将其返回给用户:rpop 键名(即List的名字)
示例:rpop TopRich
4、集合Set(不可重复)
4.1、往集合中添加一个或多个元素:sadd 键名(即集合的名字) 元素1 元素2 … (注:sadd中的s指set,集合)
示例:sadd countries China America Canada Britain
4.2、获取集合中的所有元素:smembers 键名(即集合的名字)
示例:smembers countries
4.3、删除集合中的一个或多个元素:srem 键名(即集合的名字) 元素1 元素2 … (注:srem中的s指set,rem指remove)
示例:srem countries America Britain
5、有序集合Sorted Set(不可重复、有序)
5.1、往有序集合中 添加/覆盖 一个或多个元素:zadd 键名(即有序集合的名字) 元素1的权重 元素1 元素2的权重 元素2 …
说明:权重是排序的依据,需要指定;按权重从小到大排名;权重为float类型。
添加示例:zadd ranking 2000 WangJianlin 1800 WangWei 1500 MaYun 1400 MaHuateng
在Redis Desktop Manager中可以看到:
覆盖示例:zadd ranking 2500 MaYun 1900 ZhongShanshan
在Redis Desktop Manager中可以看到:
5.2、从有序集合中获取某个范围里的元素:zrange 键名(即有序集合的名字) 起始元素的索引(含) 终止元素的索引(含) (注:第一个的索引为0,最后一个的索引可用-1表示;和List类似)
示例:zrange ranking 0 1
示例:zrange ranking 0 -1 (注:这里相当于:zrange ranking 0 n,n可以为4、5、6……)
示例(显示权重):zrange ranking 0 0 withscores
5.3、从有序集合中删除一个或多个元素:zrem 键名(即有序集合的名字) 元素1 元素2 …
示例:zrem ranking WangJianlin WangWei
在Redis Desktop Manager中可以看到: