redis是当前流行的nosql数据库
redis是当前流行的nosql数据库,很多网站都用它来做缓存,今天我们来安装并配置下redis
二、安装并配置redis
1、安装redis
sudo apt-get install redis-server//安装redis
安装完可以执行redis-cli 启动命令行模式,并写入查看数据试下
2、配置redis
2.1 配置远程登录
默认redis是不允许远程登录的,需要我们配置
#编辑redis配置文件 sudo vim /etc/redis/redis.conf #注释下面这一行 我的是69行 可以搜索bind查找 #bind 127.0.0.1
修改完重启下redis,详见2.3重启redis。
接下来我们测试远程登录是否成功,远程登录需要执行登录的服务器已经安装了redis,我这是虚拟机Ubuntu,我本机window已经配置了redis
#启动window下的redis #进入cmd命令模式 注:redis-cli -h (ip 地址) -p (端口号 默认是6379) 注意参数要和具体指要空格隔开redis-cli 是需要添加环境变量的,下图是我系统添加的环境变量
2.2配置密码登录
修改之后如果不用密码直接登录也是可以的不过不可以操作,提示需要认证
我们使用密码登录就可以正常操作了
2.3重启redis
我这边重启以及强制关闭再开启会报错
原因是我配置文件的第一行是无效的配置(/etc/redis/redis.conf line 1),我删除后重启就好了
三、安装php扩展
安装完之后重启下php,apacheh或者nginx等查看phpinfo 查看或者php -m|grep redis 查看扩展
Let’s start with a quick introduction to arrow functions. Before ES6, anytime we were using function expressions and wanted to refer this from outer context, we had to do some workarounds which are (arguably) a bit unnatural, especially comparing to other major programming languages.
Let’s do some pseudo-object-oriented programming with javascript (ES5) to illustrate a possible issue with function expressions :
function Order() { this.id = Math.floor((Math.random() * 10000000) + 1); // don't do it in a production code ;) this.items = []; } Order.prototype.addItem = function(item) { this.items.push(item); } Order.prototype.logItems = function() { this.items.forEach(function(item) { console.log("item description: " + item.description + " for order with id: " + this.id); }); } var order = new Order(); order.addItem({ description: 'Glimmer 2 rockzzz' }); order.logItems(); // whooops
We have a simple class-like functionality using constructor function and prototype to implement Order with some questionable ( ;) ) way of assigning id and some items . We can add more items with Order.prototype.addItem function and we can log them with Order.prototype.logItems function.
But there’s a problem: logItems function doesn’t log id , but logs undefined instead. Why is that?
Function expressionscreate their own context and define own this , so it no longer refers to the outer context, which is the order instance. There are several ways to solve this problem.
The most obvious is to assign outer this to some other variable, like that or self :
Order.prototype.logItems = function() { var self = this; this.items.forEach(function(item) { console.log("item description: " + item.description + " for order with id: " + self.id); }); }
You can also pass outer this as a second argument to forEach function:
Order.prototype.logItems = function() { this.items.forEach(function(item) { console.log("item description: " + item.description + " for order with id: " + this.id); }, this); }
You can even explicitly bind outer this to callback argument inside forEach function:
Order.prototype.logItems = function() { this.items.forEach(function(item) { console.log("item description: " + item.description + " for order with id: " + this.id); }.bind(this)); }
All these solutions work, but aren’t really that clean. Fortunately, since ES6, we can use arrow function expressions which preserve outer context and don’t define own this . After little refactoring Order.prototype.logItems could look like this:
Order.prototype.logItems = function() { this.items.forEach((item) => { console.log("item description: " + item.description + " for order with id: " + this.id); }); }
Much Better!
As great as it looks like, it may not be a good idea to apply arrow function expressions everywhere, especially for Ember computed properties .
Ember Computed Properties And Arrow Functions? - Not A Good Idea
Recently I was doing some refactoring in one Ember app. The syntax in one of the models was a bit mixed and there were some function expressions and arrow function expressions which looked a bit like this:
redis是当前流行的nosql数据库的更多相关文章
- mongodb,redis,hbase 三者都是nosql数据库,他们的最大区别和不同定位是什么?
不严谨地讲,Redis定位在"快",HBase定位于"大",mongodb定位在"灵活". NoSQL的优点正好就是SQL的软肋,而其弱 ...
- SnappyDB—Android上的NoSQL数据库简介
参考:http://www.open-open.com/lib/view/open1420816891937.html 参考:http://android-arsenal.com/details/1/ ...
- NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署
NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...
- 性能超越 Redis 的 NoSQL 数据库 SSDB
idea's blog - 性能超越 Redis 的 NoSQL 数据库 SSDB 性能超越 Redis 的 NoSQL 数据库 SSDB C/C++语言编程, SSDB Views: 8091 | ...
- NoSql数据库简介及Redis学习
NO-Sql数据库:Not Only不仅仅是SQL 定义:非关系型数据库:NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固 ...
- 企业级nosql数据库应用与实战-redis
一.NoSQL简介 1.1 常见的优化思路和方向 1.1.1 MySQL主从读写分离 由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力.读写集中在一个数据库上让数据库不堪重负,大部 ...
- Redis - NoSQL数据库技术(一)
NoSQL入门概述(一) 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 什么是NoSQL NoSQL(NoSQL - Not Only SQL),意“不仅仅是SQL”: 泛指非关系 ...
- Python操作nosql数据库之redis
一.NoSQL的操作 NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不 ...
- redis学习笔记-02:为什么使用NoSQL数据库
一.第一代:单机版的MySQL 1.静态网页,动态交互类型的网站不多. 2.架构:APP---->DAL---->MySQL Instance 3.数据存储的瓶颈: (1)数据量总大小超过 ...
随机推荐
- winDbg + VMware + window 双机联调环境搭建
这里简单的介绍一下内核开发双机联调的搭建环境,尽管网上有很多类似的文章,但看了很多总是不太舒服,觉得不太明白,所以自己实践一下总结一篇.下面就拿我的环境简单介绍,希望别人可以看懂. 准备工具:装虚拟机 ...
- 微信回调校验失败兼容php7
今天在移动微信支付的代码的时候,发现校验失败,之前好好的,一点点打印了,顺着微信校验程序打印看结果,发现 $xml = $GLOBALS['HTTP_RAW_POST_DATA'];; 接收到的数据 ...
- 如何正确使用 Flink Connector?
本文主要分享 Flink connector 相关内容,分为以下三个部分的内容:第一部分会首先介绍一下 Flink Connector 有哪些.第二部分会重点介绍在生产环境中经常使用的 kafka c ...
- HZOI20190903模拟36 字符,蛋糕,游戏
题面:https://www.cnblogs.com/Juve/articles/11461528.html A:字符 暴力模拟一下,细节很多,但是暴力思路都不大一样 先枚举循环节长度,然后处理一个b ...
- express 4.x 搭建Node项目框架
npm install -g express-generator express projectName cd projectName npm install 手动添加文件夹config.models ...
- CentOS 6.5 usb安装
我只说一下将CentOS安装作为服务器的情况,但是适用于普遍的CentOS安装过程,首先下载CentOS的安装镜像文件,有这么几种:CentOS-6.5-x86_64-LiveCD.CentOS-6. ...
- PHP 缓存详解
为什么要使用缓存 一个网站或者一个应用的标准流程是浏览器向应用服务器发出请求,应用服务器做一些计算和逻辑判断之后再请求数据库,数据库收到请求后在经过计算将数据返回给应用服务器,应用服务器再次计算后把数 ...
- KOA 学习(三)
请求(Request) Koa Request 对象是对 node 的 request 进一步抽象和封装,提供了日常 HTTP 服务器开发中一些有用的功能. req.header 请求头对象 requ ...
- 【html、CSS、javascript-11】jquery-事件使用方法总结
jquery提供了许多的事件处理函数,下面对其总结一下,梳理一下知识点,便于记忆和使用. 一.鼠标事件 1. click():鼠标单击事件 $div = $("div") $div ...
- 爬虫之robots.txt
robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件. 当一个搜索蜘蛛访问一个站点时,它 ...