一.数据类型 : (5种)
String: 字符串
一个 key 对应一个 value
Hash: 散列 是一个键值(key=>value)对集合。
特性:适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)
场景:存储、读取、修改用户属性
List: 列表
特性:增删快,提供了操作某一段元素的API
场景:1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列
Set: 集合
特性:1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作
场景:1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐
Sorted Set: 有序集合
特性:数据插入集合时,已经进行天然排序
场景:1、排行榜 2、带权重的消息队列
二.Redis 基本命令
切换redis DB:
select 0 (几号库)
查看所有key值:
keys *
删除指定索引的值:
del key
清空整个 Redis 服务器的数据:
flushall
清空当前库中的所有 key:
flushdb
1.Redis - String: key - value
使用incr 命令,如果key 不存在,会自动创建key 并自动+1.
设置值:
set key value
获取值:
get key
value 加一 (key 所选择的 value 必须是 数字类型)
incr key
value 减一 (key 所选择的 value 必须是 数字类型)
decr key
2.Redis - Hash: key-field-value
相当于一个key 对应一个map (map中又是key- value),
应用于归类,例如某人的个人信息
设置值
hset key key1 value1
获取值
hget key field
设置增数量: (key所选择的 value 必须是 数字类型 )
(num -> 设置 5 则 value + 5; 设置 -5 则 value - 5 )
hincrby key field num
3.Redis - List:
从顶部添加元素
lpush list a b c d
从底部添加元素
rpush list 1 2 3 4
查看列表元素
lrange list 0 -1 (从0 到 -1 元素查看:也就表示查看所有)
从顶部,删除一个元素
lpop list
从底部,删除一个元素
rpop list
4.Redis - Set:
去重; 可应用于抽奖
添加数据
sadd key value1
查看set数据中存在的元素个数
scar key
判断set数据中是否存在某个元素
sismember key value1
删除某个set数据中的元素
srem key value1
5.Redis - SortedSet(zset):
去重; 排名 排行榜
添加数据
zadd key 1.1 value1
查询总条数
zcard key
查询排序后的数据
zrange key 0 2 withcores