redis的基础知识
NOsql: not only sql
非关系型数据库:主流的数据库以外,基本上都是nosql
非关系型数据库也有库,库是系统自带的,而且不需要创建,也不能创建。
也无需在库中创建表,直接在预设的库中,一键值对的形式保存数据。
key------value
键值之间没有任何关联,值可以是任意合法的数值。
redis:redis是开源的,使用c语言编写的nosql数据库。
redis基于内存运行的,只有执行持久化操作之后,数据才会写入到磁盘中去(自带的,定时执行持久化)
1、持久化要打开
2、注意内存的使用率
redis:内存型缓存数据库
redis的工作模式
1、redis是单进程模式,启动一个就是一个进程,一台服务器可以启动多个redis的进程。
端口不能相同 6379
2、在工作中,要根据情况来选择开启多少个进程。单进程的话高并发的情况下处理速度也会降低。进程的数量太多,会影响cpu的效率。
redis的特定:
1、具有极高的读写速度,读取速度110000次/s,每秒钟81000/s的写操作。
2、数据类型非常丰富
3、支持数据的持久化
4、原子性,redis的所有操作都是原子性
5、也支持数据的备份和恢复以及集群
redis:排行榜,计算器,存储关系之类,实时日志记录,日志分析。
进入redis
redis-cli -h 192.168.32.31 -p 6379 -a 密码
-h 指定ip地址
-p 指定端口
-a 密码
redis-cli 连接服务端的命令行
redis-check-aof: 修复AOF的持久化文件
redis-check-rdb:修复RDB的持久化文件
-c 100 -n 100000
-c 并发
-n 请求
发送100个并发的链接和100000个请求的测试性能
redis的数据类型和常用的命令:
数据类型:
1、string 字符串 最常见的类型,如无特殊默认类型
2、list 列表类型
3、hash 散列
4、set 集合
5、sorted set 有序集合
常用命令
创建键值对 set
获取键值对 get
redis的库
选库 select
一共有16个库,0-15,默认在0库,每个库之间数据都是独立的
keys * 在工作中不要使用
删除键
keys t? ?任意单个字符
* 任意长度
type 查看键值的数据类型
更改键值对的名称 rename
键值对的生命周期:
如果在默认条件,set的方式,都是永久存储。
给键值对设置一个生命周期
EX seconds|PX milliseconds
ex 以秒为单位创建生命周期
px 以毫秒为单位创建生命周期
生命周期到期之后,会自动从库中删除
对已有的键值对创建生命周期
移动数据
DBSIZE 查看键值对的数量
设置密码
输入密码
登入之前要输入密码,负责所有操作将被禁止
redis-cli -h 192.168.32.31 -p 6379 -a 密码
五种数据类型
1、string:
redis的基础数据类型,最大的存储是512MB,
可以存储的数据类型,字符串,数字,图片等等。
exists:判断键值是否存在,存在返回1,不存在返回0
append key value
对存在的键值,返回值的长度
键值不存在,就创建键值对
strien test1 返回值的长度
incr key 可以对键值的值自递增1
decr key 自减1
key的值必须是整数
incrby key 5 加5
decrby key 5 减5
批量设置键值对,批量查询
mset
mget
2、list列表数据类型
创建列表类型 lpush key 列名 rpush key
查看列表 lrange kry 0 -1
根据索引下标查询
修改索引下标的值
增加值
删除值
3、hash数据:
散列类型,用于存储对象,用对象的类别和id构成键名,用字段表示对象化数据,字段值,就是对象的属性值。
创建hash
删除hash的对象和属性
删除hash
增加值
创建多个hash值
获取值
只显示对象和属性
4、set无序集合
声明一个key,键里面的值是元素,元素可以有多个,元素的类型是string。
元素的值是唯一的,不能重复。
多个集合类型之间可以进行并集,交集,集差的运算。
创建
5、zset有序集合
1、声明一个key,key里面有元素,元素可以有多个,类似也是string
元素都是唯一的,不能重复
2、每个元素都会关联一个double类型的分数,表示的是权重,元素可以通过权重的大小进行排序,元素的权重可以享用。
创建元素和对应权重
根据索引进行排序 查看值和权重
显示索引下标所在的位置
显示统计在这个集合中这个权重比 >=1,=<2
重点
set key value
get key
ttl key 查询键值的生命周期,生命周期到期之后,键值会自动删除。
select index(0-15) 默认都是0库 切换库
-a
auth 123456 密码