一、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 基础的更多相关文章

  1. Java代码redis基础操作

    maven依赖包: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...

  2. Redis基础知识、命令以及java操作Redis

    1 nosql的概念 sql:操作(关系型)数据库的标准查询语言 关系型数据库(rdbms):以关系(由行和列组成的二维表)模型为核心数据库,有表的储存系统.(mysql.oracle.sqlserv ...

  3. redis学习心得之三-【java操作redis】

    今天主要是讲讲java对redis的操作,来段代码掩饰下基本操作即可明白. java调用你需要下载jedis.jar包 下载网址:https://github.com/xetorthio/jedis/ ...

  4. [.net 面向对象程序设计深入](14)Redis——基础

    [.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  5. [.net 面向对象程序设计深入](36)Redis——基础

    [.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  6. Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术

    3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...

  7. redis的使用和安装,redis基础和高级部分

    redis的使用和安装,redis基础和高级部分 在后端开发中,为了提高性能,对于一些经常查询但是又不太变化的内容会使用redis,比如前端的列表展示项等,如果数据有变化也可以清空缓存,让前端查一次数 ...

  8. Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)

    Windows下Redis的安装使用 0.前言 因为是初次使用,所以是在windows下进行安装和使用,参考了几篇博客,下面整理一下 1.安装Redis 官方网站:http://redis.io/ 官 ...

  9. java操作redis学习(一):安装及连接

    文章参考自:http://www.cnblogs.com/edisonfeng/p/3571870.html,在此基础上进行了修改. 一.下载安装Redis redis官网显示暂时不支持Windows ...

随机推荐

  1. 我的node-webkit笔记

    话不多说,直接上码: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...

  2. 字典的key都可以是什么

    一个对象能不能作为字典的key,就取决于其有没有__hash__方法.所以所有python自带类型中,除了list.dict.set和内部至少带有上述三种类型之一的tuple之外,其余的对象都能当ke ...

  3. vmware新加磁盘fdisk看不到的处理

    虚拟机硬盘空间不够了,做了lvm准备加块硬盘扩容,在vcenter控制台加了磁盘,结果操作系统里面fdisk -l看不到新加的硬盘,又不想重启怎么办,一条命令就可以搞定. # 注意中间有空格echo ...

  4. 巧用List.stream()方法对List做处理

    List.steam()的强大之处在此不做赘述. 直接进入主题: 1.过滤Bean List中,某些字段等于指定值的所有行 List<Member> list = itemsArray.t ...

  5. IfcBuildingElement

    IfcBuildingElement /* Generated By: IFC Tools Project EXPRESS TO JAVA COMPILER: Do not edit this fil ...

  6. Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)

    一.自定义控件大全 (一).控件介绍 超过160个精美控件,涵盖了各种仪表盘.进度条.进度球.指南针.曲线图.标尺.温度计.导航条.导航栏,flatui.高亮按钮.滑动选择器.农历等.远超qwt集成的 ...

  7. JDK8:Lambda根据 单个字段、多个字段,分组求和

    使用lambda表达式分别 根据 单个字段.多个字段,分组求和 示意图: 1.根据 单个字段,分组求和:根据2019这个字段,计算一个list集合里,同属于2019的某个字段累加和 2.根据 多个字段 ...

  8. UltraEdit 替换符

    1.在每行的最后一行添加字符串: 打开替换,在查找中输入 ^r  在替换栏中输入要替换的字符  再把下边的正则表达式勾选,然后开始或是全部替换就可以了 2.替换回车换行 在查找中输入 要替换的字符  ...

  9. 微信小程序框架 同时兼容QQ小程序

    最近一直在开发微信小程序,经过几个版本的迭代开发,代码终于能够达到框架级别,动态配置.除了界面有些寒酸以外,功能上还是挺完备的. 主要有以下特点 1.整个程序所需url地址均在api.js中定义,环境 ...

  10. Oracle Spatial分区应用研究之六:全局空间索引下按县分区与按省分区效率差异原因分析

    1.实验结论 全局空间索引下,不同分区粒度之所有效率会有不同,差异并不在于SDO_FILTER操作本身,而在于对于数据字典表的访问次数上: 分区越多.表上的lob column越多,对数据字典表的访问 ...