NOSQL(一)–Redis

NOSQL(一)–Redis

简介
最近开始接触NoSQL,翻译过来就是 not only sql,非关系型数据库吧。
其中主要有四大类NoSQL,今天我们介绍其中的一种键值对的NoSQL:Redis。
定义:Redis是一个开源的使用ANSI
C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value
数据库,并提供多种语言的API。
安装(Windows)
先说下安装吧!感觉这东西跟mongodb差不多,安装和布置挺简单,
下载地址:https://github.com/dmajkic/redis/downloads 下载下来的包里有两个,
一个是32位的,一个是64位的。根据自己的实情情况选择,我的是32bit,
把这个文件夹复制到其它地方,比如D:\redis 目录下。
打开一个cmd窗口  使用cd命令切换目录到d:\redis  运行 redis-server.exe redis.conf  
如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
<span>NOSQL(一)--Redis</span>  
这时候别启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了
切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 出现下图:
<span>NOSQL(一)--Redis</span>  
 
winodows 环境下的配置及相关命令:
这时候,就已经完成配置了,现在说下它的的redis.conf配置文件。下面是相关项的说明:

更改redis的配置需要修改redis.conf文件,以下是它一些主要的配置注释:

#是否作为守护进程运行
daemonize no
#Redis 默认监听端口
port 6379
#客户端闲置多少秒后,断开连接
timeout 300
#日志显示级别
loglevel verbose
#指定日志输出的文件名,也可指定到标准输出端口
logfile redis.log
#设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N 来连接不同的数据库
databases 32
#Dump持久化策略
#当有一条Keys 数据被改变是,900 秒刷新到disk 一次
#save 900 1
#当有10 条Keys 数据被改变时,300 秒刷新到disk 一次
save 300 100
#当有1w 条keys 数据被改变时,60 秒刷新到disk 一次
save 6000 10000
#当dump     .rdb 数据库的时候是否压缩数据对象
rdbcompression yes
#dump 持久化数据保存的文件名
dbfilename dump.rdb
###########    Replication #####################
#Redis的主从配置,配置slaveof则实例作为从服务器
#slaveof 192.168.0.105 6379
#主服务器连接密码
# masterauth <master-password>
############## 安全性 ########### #设置连接密码 #requirepass <password> ############### LIMITS ############## #最大客户端连接数 # maxclients 128 #最大内存使用率 # maxmemory <bytes> ########## APPEND ONLY MODE ######### #是否开启日志功能 appendonly no # AOF持久化策略 #appendfsync always #appendfsync everysec #appendfsync no ################ VIRTUAL MEMORY ########### #是否开启VM 功能 #vm-enabled no # vm-enabled yes #vm-swap-file logs/redis.swap #vm-max-memory 0 #vm-page-size 32 #vm-pages 134217728 #vm-max-threads 4 

主从复制

在从服务器配置文件中配置slaveof ,填写服务器IP及端口即可,如果主服务器设置了连接密码,在masterauth后指定密码就行了。

持久化

  • redis提供了两种持久化文案,Dump持久化和AOF日志文件持久化。
  • Dump持久化是把内存中的数据完整写入到数据文件,由配置策略触发写入,如果在数据更改后又未达到触发条件而发生故障会造成部分数据丢失。
  • AOF持久化是日志存储的,是增量的形式,记录每一个数据操作动作,数据恢复时就根据这些日志来生成。

 持久化指令:SAVE、BGSAVE、LASTSAVE

命令行操作

使用CMD命令提示符,打开redis-cli连接redis服务器 ,也可以使用telnet客户端

# redis-cli -h 服务器 –p 端口 –a 密码

redis-cli.exe -h 127.0.0.1 -p 6379

连接成功后,就可对redis数据增删改查了,如字符串操作:

Windows环境下安装Redis体验谈_新客网

以下是一些服务器管理常用命令:

info   #查看服务器信息
select <dbsize> #选择数据库索引  select 1
flushall #清空全部数据
flushdb  #清空当前索引的数据库
slaveof <服务器> <端口>  #设置为从服务器
slaveof no one #设置为主服务器
shutdown  #关闭服务

Redis数据结构
  
Redis又经常被认为是一个数据结构服务器。因为它的value不仅包括基本的string类型还有 list,set ,sorted set和hash类型。当然这些类型的元素也都是string类型。也就是说list,set这些集合类型也只能包含string 类型。
  你可以在这些类型上做很多原子性的操作。比如对一个字符value追加字符串(APPEND命令)。加加或者减减一个数字字符串(INCR命令,当 然是按整数处理的).可以对list类型进行push,或者pop元素操作(可以模拟栈和队列)。对于set类型可以进行一些集合相关操作 (intersection union difference)。memcache也有类似与++,–的命令。
应用
     对于目前一些超大型数据库尤其是并发和数据读写性能上有着很大优势。
  Redis支持各种不同方式的序列。为了保证效率,都是缓存在内存中的,它也可以周期性的吧更新的数据写入磁盘或者把修改操作写入追加的记录文件。
  举例:在我使用的环境中,如SQLServer数据库与Application 的中间加入了Redis,这样不仅起到了一个中间的作用更大大提高了读写效率,同时减轻了数据库压力,也使安全性得到了极大保证。
 
总结:
  今天简单介绍了Redis的安装和配置事项,以及部分基础知识,作为目前在使用的一款非常不错的中间件,是值得学习的。而且随着海量数据时代的到来这种NoSQL数据库会
得到广泛的应用,当然,目前看直接作为数据库使用还有气劣势,比如不遵循SQL标准、ACID属性、表结构等等,扩展性差,缺少安全机制。对于大型数据库而言还有很多的地方需要完善。但是作为中间价甚至小型数据程序还有尤其优点的。以后会对其有进一步讲解。
 
 
 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119730.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 国产FPGA现状_fpga未来发展前景

    国产FPGA现状_fpga未来发展前景原文:https://www.sohu.com/a/229245757_132567来源:内容来自财通证券TMT组,谢谢。2018年上半年对于中国半导体行业而言是多事之秋,发生了几件让国人深入思考的大事。我作为IC产业的逃兵,最近也在思考很多的问题,包括资本市场、集成电路行业和研究所的一些不成熟的想法。2008年进入华中科技大学电子系,中科院半导体所毕业后进入联发科从事手机芯片开发(没错,就是卖的不怎么好的X30)。离开MTK之前有一段小插曲,招我进联发科的老大后来自己出来创业做安防芯片,当时喊

  • 项目分工_创新项目分工怎么写

    项目分工_创新项目分工怎么写我们小组计划开发一个移动App,设计的项目名称初定为“宝特瓶”。这个项目的实际功能是:将自己不能言语出的情感放入瓶中,好像埋在树下的“记忆”那般,将自己最珍贵、最重要、或者是最后悔羞愧的……都放在其中

  • Lens Distortion Correction[通俗易懂]

    LensDistortionCorrectionbyShehrzadQureshiSeniorEngineer,BDTIMay14,2011AtypicalprocessingpipelineforcomputervisionisgiveninFigure1below:Thefocusofthisart

  • oracle数据库用户更改密码_oracle用户密码忘记了

    oracle数据库用户更改密码_oracle用户密码忘记了我用的另一种方法,在dbeaver中打开sql编辑器,密令和下面所说一致1.WIN+R打开运行窗口,输入cmd进入命令行:输入sqlplus,输入用户名,输入口令(如果是超级管理员SYS的话需在口令之后加上assysdba)进入sql命令行;连接成功后,输入“selectusernamefromdba_users”查看用户列表。3.若修改某一个用户密码,修改用户口令格式为:alteruser用户名identifiedby新密码;4.以apps为例,密码修改为

  • Python读取excel并生成xml_python修改xml

    Python读取excel并生成xml_python修改xml在使用pandas批量处理Excel文件时,抛出XLRDError错误:XLRDError:Unsupportedformat,orcorruptfile:ExpectedBOFrecord;found’

  • spring管理quartz生命周期之`SchedulerFactoryBean`

    spring管理quartz生命周期之`SchedulerFactoryBean`spring管理quartz生命周期之SchedulerFactoryBeanspring通过SchedulerFactoryBean来管理quartz的生命周期。在spring容器启动时启动调度器,在spring容器关闭时停止调度器FactoryBeanthatcreatesandconfiguresaQuartz{@linkorg.quartz.Scheduler}…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号