一、nosql简介

RDBMS(关系型数据库)提供的结构化编程,让数据建模以及应用程序编程变得非常简单,带来了非常高的经济效益,并且学习成本也比较低。但在当今数据大爆炸时代,每时每刻都会海量的数据产生,对于数据的读写要求也越来越高,RDBMS已经不能满足人们的需求了,nosql则应运而生。

nosql(not only sql)意为:不再仅仅是结构化查询,它完全区别于RDBMS的数据存储结构,只需保证数据最终一致性而不是遵循ACID原则,读写性能远远超过RDBMS数据库。在大数据存储当中是必不可少的。

常见的nosql如:

1)redis

2)mongodb

3)memcached

二、redis简介

redis(remote dictionary server)是一个由C语言编写的开源的内存key-value数据结构存储,遵循BSD开源协议,它常被用作数据库、缓存、消息代理等。支持丰富的数据结构,如:strings、lists、sets,以及多种查询方式。同时它包含了一些强大的功能特性,如:复制、发布/订阅、lua脚本编程、事务、自动化集群隔离等。

redis的数据操作都是原子操作,并且在他的单线程架构下是不会有两个命令被同时执行的,因此你可以不用担心线程安全问题。

它也支持事务,不过与mysql事务不同,redis事务不支持回滚,你可以简单认为redis事务就是在批量执行命令。

由于它是基于内存的数据结构,所以它具有很高的性能(读的速度是110000次/s,写的速度是81000次/s),当然你也可以根据自己的项目选择持久化方式,例如:实时的持久化(日志方式实现)、定时持久化。同时是否持久化也是可选择,如果你只需要做基于内存的缓存,你也可以选择关闭持久化功能。

并且你可以用redis非常轻易地实现主从异步复制。

它可以运行在大多数可移植的操作系统上,如:linux、OS X等,并且没有其它依赖。linux和OS X是两个常用的开发和测试环境,redis官方推荐使用linux系统作为部署环境。官方并没有提供windows版的redis,不过微软开发了一个版本以提供支持。

redis一般用作缓存,它也实现了近似LRU和LFU的算法,更由于它是基于内存的高性能单线程架构所以面对秒杀等高并发情况也可以用它来解决。

三、安装redis

我们可以去redis官方下载安装包

redis官网:https://redis.io/(window版本前往GitHub下载:https://github.com/MicrosoftArchive/redis/releases

也可以使用如下命令(注意:由于redis是由C语言编写的,所以你要安装GCC:yum install gcc-c++):

$ wget http://download.redis.io/releases/redis-4.0.10.tar.gz
$ tar xzf redis-4.0.10.tar.gz
$ cd redis-4.0.10
$ make

make编译完成以后,在src目录下你会看到:redis-server

进入src目录,执行:

$ ./redis-server

启动redis服务端

你也可以执行:

$ ./redis-cli

启动客户端操作本地redis服务器

你可以可以操作远程服务器

$ redis-cli -h host -p port -a password

host: 主机地址

post: 端口一般是6379

password: 设置的密码,一般远程redis服务最好设置密码,否则需要关闭自我保护机制不然无法连接。

注意:

1)远程连接需要防火墙开启6379端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

2)redis.conf中注释掉默认绑定的IP

# bind 127.0.0.1

3)关闭自我保护模式或者添加密码

关闭,redis.conf中修改为no

protected-mode yes

设置密码123456(示例)

[root@localhost redis]# ./bin/redis-cli

127.0.0.1:6379> config set requirepass 123456

四、测试

启动服务端后启动客户端

测试是否可以连通

redis> PING

PONG

测试赋值和查询

redis> set foo bar
OK
redis> get foo
"bar"

五、后台运行

redis-server命令可以直接启动,但我这样我们就无法进行任何操作,我们需要让redis在后台运行。

在redis目录下有一个配置文件:redis.conf

我们可以通过配置该文件来达到后台运行的目的

vim 打开redis.conf 找到

将 daemonize no 修改为 daemonize yes 并保存退出

重新启动redis

$ ./redis-server ../redis.conf

注意:这里启动的时候加载了redis.conf配置文件

可以通过:

ps -ef|grep redis

查看执行进程

六、关闭服务

在redis客户端执行,这里可选择关闭前是否持久化内存数据

shutdown save|nosave

不建议使用kill终止进程

七、redis的基本命令

redis的基本命令采用以下格式:

redis> command keyName [arg...]

如:

redis> set name lay

set: 命令

name: 键的名称

lay: 参数值

以上命令设置了一个key = name , value = lay 的string类型的key-value数据。

更多基本命令如:

删除:del keyName

序列化值: dump keyName

检查是否存在: exists keyName

设定过期时间: expire keyName seconds

返回存储的类型:type keyName

...

更多命令参考官方文档:https://redis.io/commands

最新文章

  1. MyEclipse10--的使用经验
  2. JAVA基础知识之JDBC——ResultSet的滚动和更新(statement的额外参数)
  3. MXNet设计笔记之:深度学习的编程模式比较
  4. SNF开发平台WinForm之十四-站内发送系统信息-SNF快速开发平台3.3-Spring.Net.Framework
  5. spring实战一:装配bean之注入Bean属性
  6. ACE_SOCK
  7. truncate、drop、delete区别
  8. 激活windows server 2012 R2的方法
  9. java中使用正则表达式匹配字符串
  10. Python处理Excel文件
  11. JMS学习(一):初识JMS
  12. git报错:'fatal:remote origin already exists'怎么处理?附上git常用操作以及说明。
  13. python基础篇实战
  14. Sprite(雪碧图)的应用
  15. ajax 提交数组 泛型集合(二)
  16. 去除Win10快捷图标小箭头
  17. [PY3]——IO——pathlib
  18. js 键盘点击事件
  19. 使用response来控制浏览器的缓存
  20. TCP/CP调试

热门文章

  1. MySQL LOAD DATA
  2. [Objective-C语言教程]常量(7)
  3. Laravel for Windows 开发环境配置
  4. python3入门之赋值语句介绍
  5. leetcode-821-Shortest Distance to a Character
  6. IntelliJ IDEA 版本控制(svn、git) 修改文件后,所属目录的颜色也变化
  7. java web 工程创建及servlet简单使用
  8. NOI Linux学习
  9. WorldCount 结对项目
  10. Java - n的阶乘计算