• Java Redis系列2 (redis的安装与使用+redis持久化的实现))


    Java Redis系列2 (redis的安装与使用+redis持久化的实现)

    什么是Redis?

    在这里插入图片描述

    Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:

    1. 字符串类型 string
    2. 哈希类型 hash
    3. 列表类型 list
    4. 集合类型 set
    5. 有序集合类型 sortedset

    Redis的应用场景

    1.缓存(数据查询,短链接,新闻内容,商品内容)
    2.聊天室的在线好友
    3.任务队列(秒杀,抢购)
    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是有五种不同的数据结构

    图解

    在这里插入图片描述

    value的数据结构类型
    1.字符串类型 String
    2.哈希类型 hash:map格式
    3.列表类型list:linkedlist格式,支持重复元素
    4.集合类型 set:不允许重复元素
    5.有序集合类型:sortedset:不允许重复元素,且元素有顺序

    命令操作

    我们先打开服务器端
    在这里插入图片描述再打开客户端

    在这里插入图片描述

    1.字符串类型
    1.1存储 set key value
    1.2获取 get value
    演示
    在这里插入图片描述2.哈希类型
    1.存储 :hset key field value
    2.获取 :hget key field
    3.获取全部的key和valu :hgetall myhash
    4.删除:hdel key field
    演示
    在这里插入图片描述
    3.列表类型
    可以添加一个元素带一个列表的头部或尾部
    1.lpush key value:将元素加入到列表左表
    2.rpush key value:将元素加入到列表的右表
    3.获取:lrange key start end:范围获取
    4.删除列表最左边的元素并将元素返回:lpop key
    5.删除列表最右边的元素并将元素返回:rpop key

    演示
    在这里插入图片描述

    //从左边插入元素
    127.0.0.1:6379> lpush list a
    (integer) 1
    127.0.0.1:6379> lpush list b
    (integer) 2
    //获取全部元素
    127.0.0.1:6379> lrange list 0 -1
    1) "b"
    2) "a"
    127.0.0.1:6379> rpush list c
    (integer) 3
    127.0.0.1:6379> lrange list 0 -1
    1) "b"
    2) "a"
    3) "c"
    //移除列表最左边的元素
    127.0.0.1:6379> lpop list
    "b"
    127.0.0.1:6379> lrange list 0 -1
    1) "a"
    2) "c"
    //移除列表最右边的元素
    127.0.0.1:6379> rpop list
    "c"
    127.0.0.1:6379> lrange list 0 -1
    1) "a"
    127.0.0.1:6379>
    

    集合类型set:不允许重复元素

    1.存储数据 sadd key value
    2.删除数据 srem key value
    3.获取数据:smembers key获取set集合中的所有元素
    在这里插入图片描述

    //添加数据
    127.0.0.1:6379> sadd set 1
    (integer) 1
    127.0.0.1:6379> sadd set 2
    (integer) 1
    //获取所有元素
    127.0.0.1:6379> smembers set
    1) "1"
    2) "2"
    //删除指定元素
    127.0.0.1:6379> srem set 1
    (integer) 1
    127.0.0.1:6379> smembers set
    1) "2"
    127.0.0.1:6379>
    

    有序集合类型sortedset

    不允许重复元素,且元素有序,每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    在这里插入图片描述

    //插入数据
    127.0.0.1:6379> zadd sortedset 1 zhangsan
    (integer) 1
    127.0.0.1:6379> zadd sortedset 5 lisi
    (integer) 1
    127.0.0.1:6379> zadd sortedset 2 wangwu
    (integer) 1
    //获取数据
    127.0.0.1:6379> zrange sortedset 0 -1
    1) "zhangsan"
    2) "wangwu"
    3) "lisi"
    //移除指定数据
    127.0.0.1:6379> zrem sortedset wangwu
    (integer) 1
    127.0.0.1:6379> zrange sortedset 0 -1
    1) "zhangsan"
    2) "lisi"
    127.0.0.1:6379>
    

    通用命令

    keys * :获取所有键
    type key :获取键对应的value的类型
    del key :删除指定的key value

    Redis 持久化

    为什么要进行持久化?
    redis是一个内存数据库,当redis服务器重启时,数据会丢失,所以我们需要将redis数据持久化到硬盘文件中
    redis的持久化机制
    1.RDB:默认方式,不需要进行配置,默认就是使用这种机制
    在一定的时间间隔内,通过检测key的变化情况,然后持久化数据

    1.1编辑redis.windows.conf文件
    在这里插入图片描述
    save 900 1
    15分钟后至少一个发生改变
    save 300 10
    五分钟后至少10个发生改变
    save 60 10000
    一分钟后至少10000个发生改变
    1.2 重新启动redis服务器,并指定配置文件名称
    D:JavaWeb2018day23_redis资料 ediswindows-64 edis-2.8.9>redis-server.exe redis.windows.conf
    在这里插入图片描述

    AOF:日志记录的方式,可以记录每一条命令的操作。可以每一次命令操作后,持久化数据
    1. 编辑redis.windwos.conf文件
    在这里插入图片描述

    				appendonly no(关闭aof) --> appendonly yes (开启aof)
    

    在这里插入图片描述

    				# appendfsync always : 每一次操作都进行持久化
    				appendfsync everysec : 每隔一秒进行一次持久化
    				# appendfsync no	 : 不进行持久化
    

    以上就是Redis的一些基础操作及怎么进行持久化,这也是我JAVA redis系列的第二篇,后面我会继续更新,写作不易,请各位老铁点个赞支持一下,觉得有帮助的也可以收藏呀,我会经常更新文章,也可以关注我呀

    在这里插入图片描述

  • 相关阅读:
    python 文件批量改名重命名 rename
    AN INTEGER FORMULA FOR FIBONACCI NUMBERS
    python opencv cv2 imshow threading 多线程
    adb shell 查看当前与用户交互的 activity
    sublime text build system automatic ctrl/cmd+B自动选择 python2 或 python3
    pip 源的问题
    Mac 安装 Android commandlinetools 各种报错的问题
    GIMP 一键均匀添加多条参考线 一键均匀切分图片
    Shell 脚本如何输出帮助信息?
    raspberry pi 配置
  • 原文地址:https://www.cnblogs.com/pjhaymy/p/13463898.html
Copyright © 2020-2023  润新知