redis(1)简介
一、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
redis(1)简介的更多相关文章
- Redis详解(一)------ redis的简介与安装
工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的博客将整体的介绍 Redis 的用法. 1.Redis 的简介 Redis:REmote DIctionary Server(远程字典 ...
- Redis系列(一):Redis的简介与安装
原文链接(转载请注明出处):Redis系列(一):Redis的简介与安装 什么是 Redis Redis 是一个使用ANSI C 编写的开源.支持网络协议.基于内存.可选持久性的键值对数据库,它是一个 ...
- [转]Redis 数据结构简介
Redis 数据结构简介 Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串).List(列表).Set(集合).Hash(散列)和 Zset(有序集合 ...
- Redis 详解 (一) redis的简介和安装
目录 1.Redis 的简介 2.Redis 下载 3.安装环境 4.编译安装 5.启动Redis 6.关闭Redis 7.注意事项 工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的 ...
- Redis数据类型简介(十分钟快速学习Redis)
如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...
- Redis的简介与安装(windows)
1.简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). list(链表).set(集合).zset(sorte ...
- Redis的简介与安装
1.简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...
- redis(一)简介
啥也不说百度各种简介 推荐一个博客灰常详细的介绍 nosqlfan 接下来发布redis+USE_TCMALLOC 的安装配置,博客好多坑,找一篇好文真心难啊. redis+keepalived ...
- redis cluster简介和配置(3)
前面我介绍了 redis sentinel,既然有了sentinel,为什么还要一个cluster呢?因为随着业务量的增加,不可避免要对redis进行扩容,扩容方式一般由2种:1. 垂直扩容 2. 水 ...
- Redis的简介
Redis 简介 Redis 是一个高性能的key-value数据库.支持复杂的数据结构,支持持久化,支持主从集群,支持高可用,支持较大的value存储... Redis是一个nosql,非关系型数据 ...
随机推荐
- TL431的应用
TL431的应用 对于基准源,大部分人都认识TL431,因为它物美价廉,高精度,满足一般的应用场合,价格低至1毛钱,就算是ST高端品牌的也是几毛钱.这仅仅是其中一点,还有一点是因为它不仅仅可以作为基准 ...
- linux杀进程
1.Linux杀进程的一个例子 (1)查看进程:ps -ef | grep 进程名 (2)杀进程:kill -9 进程名或者进程号 例如:杀tomcat的进程 (1)ps -ef | grep tom ...
- es查询,聚合、平均值、值范围、cardinality去重查询
原文:https://blog.csdn.net/sxf_123456/article/details/78195829 普通查询 GET ana-apk/_search { "query& ...
- C#-★★函数★★
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能.所有的高级语言中都有子程序这个概念,用子程序来实现模块的功能.在C#语言中,子程序的作用是由一个主函数和若干个函数构成.由主函数 ...
- ES6 (一)变量声明方法 & 解构赋值
就是最新的JavaScript 原来的是var,要求不严格,不能限制修改,函数级 es6要求严格 1.防止重复声明 let 变量=var const 常量 2.控制修改 const常量不能修 ...
- JeeSite功能模块解读,功能介绍,功能实现
做为十分优秀的开源框架,JeeSite拥有着很多实用性的东西. 首先说下他的一个流程 Jeesite流程 流程 主要是jsp,entity,dao,dao.xml,service,controller ...
- thinkpadT480安装archlinux
制作U盘启动盘 下载archlinux镜像 下载powerison 将镜像刻录到U盘中 设置bios 如果已经安装了win8+系统, 开机重启然后按f1,进入设置界面,加载启动项中将usb放到最前 保 ...
- 【笔记】Django的视图
[笔记]Django的视图 Python Django Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应 ...
- vue项目页面空白
vue项目页面空白 今天新建项目,然后发现路由也改了 app.vue里面也是啥都没有, 但是访问http://localhost:8080/#/login 能访问 里面确实空白的 错误: 错误原因: ...
- 时钟时间,系统cpu时间,用户cpu时间
进程的3种状态:阻塞,就绪,运行 度量一个进程的执行时间,unix为进程维护了3个时间,即时钟时间,用户CPU时间,系统CPU时间. 时钟时间又被称为墙上时钟时间,wall clock tim ...