具体下载安装文章来源:https://blog.csdn.net/kkijhuybjju/article/details/107097241
Linux系统可能会遇到的问题没有wget命令(-bash: wget: 未找到命令) 解决:yum -y install wget
redis 数据存储格式
redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串应用场景
为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等时效性信息控制,如验证码控制、投票控制等分布式数据共享,如分布式集群架构中的 session 分离消息队列redis为每个服务提供有16个数据库,编号从0到15
每个数据库之间的数据相互独立
db 基本操作切换数据库: select index 数据移动: move key db 数据总量:dbsize 数据清除(一般禁用这两个指令): flushdb.flushall
命令行模式工具使用
帮助信息查阅help [command] 例如:help set
退出指令quit exit 快捷键:Ctrl+C
清除屏幕信息clear
hash存储格式
存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息需要的存储结构:一个存储空间保存多个键值对数据hash类型:底层使用哈希表结构实现数据存储应用场景:例如存储、读取、修改用户属性(name,age,pwd等),双11有上限数量商品的抢购hash存储结构优化
如果field数量较少,存储结构优化为类数组结构如果field数量较多,存储结构使用HashMap结构hash基本操作
list存储格式
存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序list类型:保存多个数据,底层使用双向链表存储结构实现应用场景:1.最新消息排行榜。2.消息队列,以完成多程序之间的消息交换。使用push操作将任务存放在list中,然后线程在用pop操作将任务取出进行执行。list基本操作
set存储格式
新的存储需求:存储大量的数据,在查询方面提供更高的效率需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的应用场景: 排行榜set 类型数据操作的注意事项set 类型不允许数据重复,如果添加的数据在 set 中已经存在,将只保留一份 set 虽然与hash的存储结构相同,但是无法启用hash中存储值的空间
set基本操作
Java语言连接redis服务
Jedis SpringData Redis Lettuce
客户端连接redis
public class JedisTest { public static void main(String[] args) { //1.获取连接对象 // Jedis jedis = new Jedis("192.168.40.130",6379); Jedis jedis = JedisUtils.getJedis(); //2.执行操作 jedis.sadd("set1","abc","abc","def","poi","cba"); Long len = jedis.scard("set1"); System.out.println(len); //3.关闭连接 jedis.close(); } }将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据
RDB启动方式 —— save指令
手动执行一次保存操作: save save指令的执行会阻塞当前Redis服务器,直到当前RDB过程完成为止,有可能会造成长时间阻塞
RDB启动方式 —— save指令相关配置
RDB启动方式 —— bgsave指令
bgsave:手动启动后台保存操作,但不是立即执行:
RDB启动方式 —— bgsave指令相关配置 bgsave命令是针对save阻塞问题做的优化
RDB启动方式 —— bgsave指令工作原理
以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中命令达到恢复数据的目的。与RDB相比可以简单理解为由记录数据改为记录数据产生的变化
AOF写数据过程随着命令不断写入AOF,文件会越来越大,为了解决这个问题,Redis引入了AOF重写机制压缩文件体积。AOF文件重写是将Redis进程内的数据转化为写命令同步到新AOF文件的过程。就是将对同一个数据的若干个条命令执行结果转化成最终结果数据对应的指令进行记录。