Java 之 Redis 基础
一、Redis 概述
1、什么是 Redis
Redis:redis 是一款高性能的 NOSQL 系列的非关系型数据库。
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求。
目前为止 redis 支持的键值数据类型如下:
① 字符串类型 String
② 哈希类型 hash
③ 列表类型 list
④ 集合类型 set
⑤ 有序集合类型 sortedset
2、Redis 的应用场景
(1)缓存(数据查询、短连接、新闻内容、商品内容等)
(2)聊天室的在线好友列表
(3)任务队列。(秒杀、抢购,12306等)
(4)应用排行榜
(5)网站访问统计
(6)数据过期处理
(7)分布式集群架构中的 session 分离
二、下载安装
1、官网:https://redis.io
2、中文官网:http://www.redis.net.cn/
3、解压直接可以使用
- redis.windows.conf:配置文件
- redis-cli.exe :redis 的客户端
- redis-server.exe : redis 服务器端
三、Redis 的数据结构
redis 存储的是:key,value 格式的数据,其中 key 都是字符串,value 有5种不同的数据结构
value 的数据结构:
(1)字符串类型: string
(2)哈希类型 hash :map 格式
(3)列表类型 list :linkedlist 格式,支持重复元素
(4)集合类型 set :不允许重复元素
(5)有序集合类型 sortedset:不允许重复元素,且元素有顺序
示意图:
四、命令操作
1、操作字符串类型
(1)存储
语法格式:
set key value:存入键值对
如:
set username zhangsan
(2)获取
语法格式:
get key: 根据键获取值
如:
get username
(3)删除
语法格式:
del key:根据键删除键值对
如:
del age
2、操作hash哈希类型
(1)存储
语法格式:
hset key field value:根据键存入,filed为字段名,value为值
如:
hset myhash username lisi
hset myhash password 123
(2)获取
语法格式:
hget key field: 根据键获取指定的field对应的值
hgetall key:获取所有的field和value
如:
hget myhash username
hgetall myhash
(3)删除
语法格式:
hdel key field
如:
hdel myhash username
3、操作list列表类型
列表类型类似于队列结构,可以添加一个元素到列表的头部(左边)或者尾部(右边)
(1)添加
语法格式:
lpush key value: 将元素加入列表左表
rpush key value:将元素加入列表右边
如:
lpush myList a
rpush myList c
(2)获取
语法格式:
lrange key start end :范围获取
如:
lrange myList 0 -1 :0表示开头,-1表示尾部
(3)删除
语法格式:
lpop key: 删除列表最左边的元素,并将元素返回
rpop key: 删除列表最右边的元素,并将元素返回
4、操作set集合类型
(1)存储
语法格式:
sadd key value:根据键存入值,不允许重复
如:
sadd myset a
(2)获取
语法格式:
smembers key:根据键获取set集合中所有元素
如:
smembers myset
(3)删除
语法格式:
srem key value:删除set集合中的某个元素
如:
srem key value:删除set集合中的某个元素
5、操作sortedset有序集合类型
sortedset 不允许存储重复元素,且元素有顺序,每个元素都会关联一个double类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
(1)存储
语法格式:
zadd key score value:根据键存入值,score 为键指定的分数,作为排序的依据
如:
zadd mysort 60 zhangsan
zadd mysort 50 lisi
(2)获取
语法格式:
zrange key start end [withscores]:withscores作为可选项,添加上,会把对应的分数打印出来
如:
zrange mysort 0 -1
zrange mysort 0 -1 withscores
(3)删除
语法格式:
zrem key value:删除指定键集合中的值
如:
zrem mysort lisi
6、通用命令
keys * : 查询所有的键
type key : 获取键对应的value的类型
del key:删除指定的key value
注意:如果给指定的键多次赋值的话,最后一次的赋值会覆盖前面的值。
五、Redis 持久化
redis 是一个内存数据库,当 redis 服务器重启,或者电脑重启后,数据会丢失,我们可以将 redis 内存中的数据持久化保存到硬盘的文件中。
Redis 持久化机制
1、RDB 方式
RDB:默认方式,不需要进行配置,默认就使用这种机制。
在一定的间隔时间中,检测 key 的变化情况,然后持久化。
如果需要修改,执行下面两步即可。
(1)编辑 redis.windows.conf 配置文件
# after 900 sec (15 min) if at least 1 key changed
save 900 1
# after 300 sec (5 min) if at least 10 keys changed
save 300 10
# after 60 sec if at least 10000 keys changed
save 60 10000
这是默认的设置,当然也可以根据自己的需要进行设置,然保存
(2)在 DOM 命令窗口,重新启动 redis 服务器,并制定配置文件名称即可。
如:
E:\redis\redis\windows-64\redis-2.8.9>redis-server.exe redis.windows.conf
2、AOF 方式(不推荐使用)
AOF 方式,日志记录的方式,可以记录每一条命令的操作。可以每次命令后,持久化数据。
修改操作:编辑 redis.windows.conf 文件
appendonly no(关闭aof) --> appendonly yes (开启aof) 默认情况是关闭的,设置为 yes 为打开 # appendfsync always : 每一次操作都进行持久化
appendfsync everysec : 每隔一秒进行一次持久化
# appendfsync no : 不进行持久化
Java 之 Redis 基础的更多相关文章
- Java代码redis基础操作
maven依赖包: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...
- Redis基础知识、命令以及java操作Redis
1 nosql的概念 sql:操作(关系型)数据库的标准查询语言 关系型数据库(rdbms):以关系(由行和列组成的二维表)模型为核心数据库,有表的储存系统.(mysql.oracle.sqlserv ...
- redis学习心得之三-【java操作redis】
今天主要是讲讲java对redis的操作,来段代码掩饰下基本操作即可明白. java调用你需要下载jedis.jar包 下载网址:https://github.com/xetorthio/jedis/ ...
- [.net 面向对象程序设计深入](14)Redis——基础
[.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- [.net 面向对象程序设计深入](36)Redis——基础
[.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术
3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...
- redis的使用和安装,redis基础和高级部分
redis的使用和安装,redis基础和高级部分 在后端开发中,为了提高性能,对于一些经常查询但是又不太变化的内容会使用redis,比如前端的列表展示项等,如果数据有变化也可以清空缓存,让前端查一次数 ...
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
Windows下Redis的安装使用 0.前言 因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下 1.安装Redis 官方网站:http://redis.io/ 官 ...
- java操作redis学习(一):安装及连接
文章参考自:http://www.cnblogs.com/edisonfeng/p/3571870.html,在此基础上进行了修改. 一.下载安装Redis redis官网显示暂时不支持Windows ...
随机推荐
- Linux的tmpfs和ramfs
tmpfs tmpfs是一种虚拟内存文件系统, 它的存储空间在VM里面,现在大多数操作系统都采用了虚拟内存管理机制, VM(Virtual Memory) 是由Linux内核里面的VM子系统管理. V ...
- vue npm run dev 报错 semver\semver.js:312 throw new TypeError('Invalid Version: ' + version)
npm run dev运行报错信息如下图: 原因分析: 版本问题 解决办法: 在semver.js(node_modules/semver/semver.js)里做了一些改动,代码如下: // if ...
- Android: NDK中的Android.mk和Application.mk
1. 简介 Android.mk 可用来描述要编译的某个具体模块的相关信息.比如:指定编译该模块时所需要的源文件.编译该模块时要链接的库文件.该模块编译完成后生成的库的名字等等.Applicatio ...
- Un-Error-ASP.NET:无法加载协定为“YlbService.MMSHServicesSoap”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
ylbtech-Error-ASP.NET:无法加载协定为“YlbService.MMSHServicesSoap”的终结点配置部分,因为找到了该协定的多个终结点配置.请按名称指示首选的终结点配置部分 ...
- WebGL学习笔记(十三):拾取
目前为止,我们还没有涉及到交互相关的内容,实际上,我们是需要知道我们点击的地方下面的第一个物体的信息,这个过程称为拾取. 简单拾取实现 我们可以通过颜色来获取是否成功点击,具体方式如下: 场景中有一个 ...
- 【APM】Pinpoint 监控告警(三)
本例介绍Pinpoint告警的相关内容,Pinpoint参考[APM]Pinpoint 安装部署(一) Pinpoint Web会定期检查应用程序的状态,并在满足某些预配置条件(规则)的情况下触发警报 ...
- Qt开发经验小技巧61-70
很多人问Qt嵌入式平台用哪个好,这里统一回答(当前时间节点2018年):imx6+335x比较稳定,性能高就用RK3288 RK3399,便宜的话就用全志H3,玩一玩可以用树莓派香橙派. 对于大段的注 ...
- python初级(302) 5 列表
一.复习 1.函数的创建 1) def关键字 2) 函数名及后面跟随的括号 3)冒号加上函数体 2.函数的调用 函数名及后面跟随的括号 3.带一个,二个,三个参数的函数及调用 二.列表 family ...
- 设计模式php+java版本(1) 基础篇 七大原则
2019年9月6日11:15:46 关于设计模式,其实就是编程思想的一个体现,有比较完善的编程思想写出的项目代码和没有编程思想的写出的差距巨大,代码的可读性,可维护性,可扩展性天差地别,有些刚接触的编 ...
- activiti学习6:启动流程后动态获取流程图
目录 activiti学习6:启动流程后动态获取流程图 一.绘图原理 二.根据流程定义id绘图 三.根据流程实例id绘图 3.1 基本原理 3.2 当前节点的获取 3.3 走过的节点的获取 3.4 绘 ...