redis简介
1.redis
Redis(Remote Dictionary Server ),即远程字典服务
Mysql关系型数据库,他的数据存储在磁盘中,读取效率很低
以Nosql非关系型数据库为例的redis,讲数据存储在内存中,读取效率大大增加
支持持久化,主要用作备份恢复
redis的读取速度是30w次每秒,写的速度是10w次每秒
2.Redis能干嘛
1、内存存储、持久化,内存中是断电即失、所以说持久化很重要(rdb、aof)
2、效率高,可以用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器、计数器(浏览量!)
3.redis的数据类型(5种)
- String
- HashMap
- Linked List
- set(去重)
- sorted set(有序)
4.五种数据类型的基本操作
1. String
set “key” "value"设置值
get "key"得到值
getrange可以通过开始和结束值得到字符串
0 -1是全部字符串
设置过期时间
setnx只有在key不存在时才会设置值
mset可以设置多个key-value
如果key重复的话,值会被覆盖掉
msetnx同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
因为luoke1存在,所以第一次失败
加1操作(减一用decr)
2.hash操作
批量操作
hgetall获取在哈希表中指定 key 的所有字段和值
获取字符哈希表中的字段和字段中的值
为哈希表中的浮点数设置增量
3.list列表的相关操作
分为操作左边和右边
lpushx将值插入列表头部
将多个值插入尾部
在value3之前插入11111
根据索引获得值
4.set集合
通过sadd添加数据
smembers来查询全部数据
获取成员数量
真实业务===>获取当天登陆用户数量
5.对key的操作
1删除
del user1
2查看所有的key
keys * 生产环境下,别用
3存在key
exists user1
4存活时间
expire ydlclass 5
5剩余存活时间 登陆续期
pttl user1
6随机获取 key
randomkey
6.对ZSet的操作-重要(热搜)
Zset是sorted set有序集合,不允许重复数据
zcount可以统计在一个区间的成员
zcard获取集合的成员数量
4增加权重
ZINCRBY pv 1 page1.html
5交集
ZADD pv_zset1 10 page1.html 20 page2.html
ZADD pv_zset2 5 page1.html 10 page2.html
ZINTERSTORE pv_zset_result 2 pv_zset1 pv_zset2
6成员的分数值
ZSCORE pv_zset page3.html
7 获取下标范围内的成员。 排序,默认权重由低到高
ZRANGE pv 0 -1
8获取由高到低的几个成员(reverse)使用最多的
效率很高,因为本身zset就是排好序的。
ZREVRANGE key start stop