1.redis作用:缓存数据,减轻数据库的压力。
2.所有的数据库都不支持高并发,一旦访问量激增,数据库很快就会崩溃,所以redis把客户访问的内容缓存到redis里面,从而减轻数据库的压力。
3.redis也是一个数据库,不单单是一个缓存工具;是非关系型数据库也就是nosql(not only sql)但是也不仅是sql。
4.redis特点:键值对形式 ,数据的类型不是定义好的类型,键值可以对应任意的值。
5.redis是什么:远程字典服务器,键值对,开源的,c语言写的nosql数据库;redia基于内存运行的,所有的数据不是保存在硬盘,而是内存,所以redis有持久化功能,定期或者人为的把数据保存到硬盘。
6.redis的优点:极高的读写速度,读速度可以达到1秒钟十一万次,一秒钟可以写81000次;支持丰富的数据类型,键值对可以定义多种数据类型比如字符串string、list、hash、set;支持数据持久化,可以把内存当中的数据保存到磁盘;redis所有操作都是原子性,要不所有成功,要么所有失败;支持主从模式和高可用模式也叫哨兵模式,以及集群。
7.redis基于内存运行的数据库,缓存时最常应用的场景。(比如排行榜、计数器、存储关系、日志系统及存储关系)
8.缓存的概念,缓存到底是什么:缓存是一种用于存储临时数据副本的技术,目的是提高访问速度和性能;缓存通常位于数据的访问路径上,数据的必经之路,可以不用直接访问原始数据的情况下,可以直接获取数据。
9.缓存的应用场景:运维最常用的就是web缓存和数据库缓存,以及对象缓存。
二、redis命令工具
1.命令
redis-server 可以直接启动redis(只能用于启动用)
redis-benchmark 检测redis在本机的运行效率
redis-cli 命令行工具
redis-check-aof 检测AOF持久化文件是否正常
redis-check-rdb 检测rdb持久化文件是否正常
-h指定服务器的主机名 IP地址
-p 指定服务器端口号
-c 指定并发连接数
-n 指定请求数
- q -d 模拟指定数据包的性能
2.连接请求测试
redis-benchmark -h 20.0.0.26 -p 6379 -c 100 -n 100000
3.如何进入redis
redis-cli -h 20.0.0.26 -p 6379
-h 指定IP地址
-p 指定端口号
-a 指定登录密码
redis-cli 本机直接进,仅限于本地,远程还是需要指定目标服务器的IP地址和端口
4.redis数据库常用的命令:
基础数据类型:
string(字符串)
list(列表,双向链表)
hash(散列,键值对集合)
set(集合,不重复)和sorted set也可以称为zset(有序集合)。
1.进入redis
2.创建键值对 set 键名 键值
3.查看键值对的值 get 键值名
4.查看有几个键值对 keys *
5.keys模糊查询
6.查看键值对是否存在 exists 键名
7.查看键值对的类型
8.删除键值对
9.如何对键值改名
10.对redis设置密码
11.设置密码后的两种登录方式
12.查看库中键的数量 DBSIZE
13.redis的库都是创建好的库,默认16个库,按照数字进行排名;数字排名:0-15;每个数据库之间互相独立,互不干扰。
14.将本库的键值对移到别的库内
15.清空:永不操作的操作
三、redis 的五大数据类型:
1、string数据类型(字符串):
也是redis最基本的类型,最大能存储512MB的数据,可以存储任何数据,数字,文字,图片等等
SET/GET/APPEND/STRLEN:
PS:APPEND
APPEND key value追加键值,并返回追加后的长度(若键不存在,则相当于创建)
键值的长度
键值自增减:incr 键名 decr 键名
键值指定增减 decrby 键名 incr 键名
给键值设置过期时间:时间过后键值对自动从redis中删除 setex 键名 过期时间 键值
一次性插入多个键值对及查看多个键
2、list数据类型
概述:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素
创建列表
lpush从右到左插入元素
rpush从左到右插入元素
插入数据:lpushx / rpushx
删除数据:lpop删头/rpop删尾
llen 获取表中元素数量
索引下标:lindex 表名 索引下标:查询索引下标对应的值(索引下标从0开始)
在索引下标后添加元素:lset
lset xy111 3 shang:在第三位(第四个元素)后面添加shang
3、HASH类型
HASH类型用于存储对象,采用HASH格式进行操作。占用的磁盘空间少,而且一个HASH可以存储4294967295个键值对
hash是一个键值对,包含多个对象和对象值;一个hash就是一个hash值,一个hash值可以存42亿个键值对
创建hset
hset 键名 字段 值
打印hget
hget 键名 字段
创建多个字段:
hmset 键名 字段1 值1 字段2 值2
打印指定字段:
hmget 键名 字段1 字段2
打印全部字段和值:
HGETALL 键名
打印指定多个字段:
hmget 键名 字段1 字段2
创建多个字段:
hmset 键名 字段1 值1 字段2 值2
打印全部字段和值:
HGETALL 键名
hkeys命令仅获取myhash键中所有字段的名字
删除键:del 键名
删除键中的字段:
hdel 键名 字段1 字段2
删除:del
4、set数据类型(无序集合):set
元素类型也是string。元素值是唯一的,不允许重复,多个集合类型可以进行并集、交集、差集运算
set当中的元素类型是唯一的,可以跟踪一些唯一性的数据,如访问微博的用户名,只要把对应的名称写入redis,set会自动保存他的唯一性,方便下一次访问
创建:
sadd 键名 元素
判断元素是否已经存在
sismember 表名 元素
随机的返回了某一元素
SRANDMEMBER 键名
随机移除一个元素
spop 键名
指定移除:
srem 键名 元素1 元素2 元素3
5、有序集合:zset
元素类型也是string,元素也不能重复唯一
每个元素都要关联一个double类型(浮点数)的分数(score,表示权重),可以通过权重的大小进行排序。元素不能相同但是元素的score权重的可以相同
用于在线积分的排行榜,实时更新用户的分数和排名。zrange命令获取积分top10的用户。zrank命令通过username获取用户的排行信息
创建:
zadd myzset 1 one
权重是1,元素是one
查看索引位置:
zrank 键名 元素
如何查询成员数量:
zcard 键名
zcount 键名 1 2 查看权重1-2的成员数量
删除:
zrem 键名 元素
查看有序集合的权重和元素
只查看元素:ZRANGE 键名 0 -1
查看权重和元素:ZRANGE 键名 0 -1 withscores
0表示第一个 -1表示最后一个
查看元素对应的权重
zscore 键名 元素
set和hset 创建普通类型和HASH类型:
一般情况下,如无特殊需求,普通的创建方式即可
对一个键进行对字段存储,节省内存,使用HASH方式
工作中set足够
五大数据类型:
1.string
2.list
3.hash对一个键进行多字段操作,节省内存空间
4.无序集合set元素不能重复,可以用来定义唯一值
5.有序结合zset元素不能重复,但是权重可以相同,用来排名