redis概述、使用
redis是什么
redis是一个存储数据的容器,相当于数据库能存储数据是一样的,实现对数据的增删查改
特性
- nosql: not only structured query language 不仅结构化查询语言,一类操作命令的统称 sql
- key-value : 为了处理非结构化数据,使用key-value的数据结构处理数据.处理结构化数据的技术--关系型数据库,处理非结构化数据--redis mongdb hdfs
- 内存运行:redis在运行过程,数据在内存中处理
- redis使用结构:包含2个 服务端运行处理数据的进程
登录redis服务端操作数据的客户端
- 优点缺点:
- 优点:速度快
- 缺点:
- 内存容量,相对于磁盘较小,redis存储空间资源稀缺
- 内存断电丢失数据情况,数据容错性比较低
- 分布式: 一个redis节点内存容量小,可以多启动几个rendis,行程分布式集群解决容量小的问题,相对单个redis进程,处理容量呈线性增长(总量还是不如磁盘多),分布式结构中就要解决分布式的问题--数据分片计算
- 持久化: redis的数据虽然是在内存处理的,但是redis提供持久化的功能,可以按照持久化的机制,将内存数据保存在磁盘一份.即使内存数据断点丢失了,也可以保证数据依然存在继续被使用--挺高redis容错性.
启动
-
服务端启动
- 默认启动:redis-server
默认的属性
例如:
port号:6379
默认开启保护模式:只允许本机客户端登录
默认关闭守护进程:占用控制台输出日志
退出关闭进程直接使用:ctrl+c
2.指定启动:redis-server 脚本路径
关闭:1.查看进程id ps -ef|grep redis
直接杀死id kill pid
2.可以直接关闭:shutdown
redis的基础命令
-
keys *
表示在客户端查看当前redis服务端内存中所有的数据key值。
将已有的数据返回,没有数据时,返回空。这里返回的都是内存中保存的数据key值
♦ 不支持分布式结构。不能通过一个keys * 从一个redis服务中查看其它redis数据
♦ 生产环境(客户使用环境)使用keys *不合理,造成读数据阻塞(一次读太多数据)
127.0.0.1:6379> keys *
1) "location"
2) "gender"
3) "age"
4) "name"
127.0.0.1:6379>
-
exists key值
表示要查看一下对应的key值数据是否在redis内存中存在。
♦ 如果判断存在的数据,有读的操作,比如字符串类型的get,不需要exists的存在了呢?不可以使用get这种读操作代替exists判断存在的操作,因为使用读判断存在,浪费了读数据的带宽。而且redis 最新版本一个value数据可以达到1GB大小。
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379> exists heiheihei
(integer) 0
-
expire/pexpire key time
在redis中,可以根据需求对写入的数据设置超时时间,一旦到达超时条件将会在内存中把数据删除,expire 对某个key的数据做秒单位的超时,pexpire对key值做毫秒单位的超时。没有使用相关超时的数据写入时,默认是永久数据。
127.0.0.1:6379> expire location 5
(integer) 1
127.0.0.1:6379> keys *
1) "gender"
2) "age"
3) "name"
-
ttl/pttl key
在执行设置了超时时间的key值上,查看这个key的剩余时间。ttl操作一个key能够看到剩余时间单位是秒,pttl看得是毫秒。
127.0.0.1:6379> expire name 100
(integer) 1
127.0.0.1:6379> ttl name
(integer) 89
127.0.0.1:6379> pttl name
(integer) 83322
127.0.0.1:6379>
-
del key删除数据
del可以对指定的key-value进行删除操作。
127.0.0.1:6379> keys *
1) "gender"
2) "age"
127.0.0.1:6379> del gender
(integer) 1
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379>
-
save 存储持久化
redis支持持久化,将内存数据,输出到持久化文件,内存数据保存在磁盘上。
redis重新启动时自动加载保存的持久化文件,将数据恢复回来。
save命令的调用,就是将内存数据输出到持久化文件中保存。
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> save
OK
127.0.0.1:6379>
-
flushall
冲刷所有,删除所有数据。将当前redis服务的内存数据和持久化文件中的数据全部清空。
♦ 尽可能只在测试环境使用,不要到生产环境。
五种数据类型
1.String类型数据
2.hash类型
3.List双向链表
4.SET集合
5.ZSET有序集合
后续内容自己只是了解,等摸透后继续更新,一般使用都是直接用封装好的使用
redis算法
1.hahs取余算法
2.一致性hash
redis的高可用哨兵redis-sentinel
redis-cluster集群
浙公网安备 33010602011771号