> 웹 프론트엔드 > JS 튜토리얼 > nodejs의 redis 적용 사례에 대한 자세한 설명

nodejs의 redis 적용 사례에 대한 자세한 설명

php中世界最好的语言
풀어 주다: 2018-05-14 14:14:13
원래의
1876명이 탐색했습니다.

이번에는 nodejs에서 redis를 적용한 사례에 대해 자세히 설명드리겠습니다. nodejs에서 redis를 사용할 때 주의사항은 무엇인가요? 실제 사례를 살펴보겠습니다.

redis는 성능이 매우 좋은 인메모리 데이터베이스입니다. 애플리케이션과 mysql 데이터 사이에 캐싱 데이터 라이브러리로 배포되어 애플리케이션의 성능을 크게 향상시킬 수 있습니다. nodejs 클라이언트에서 redis 운영

Redis에 저장할 수 있는

데이터 유형은 총 5개입니다. 이는 문자열, 목록, 집합, 세 개의 열, 추가, 삭제, 확인 및 순서가 지정된 집합입니다. 이 5가지 데이터 유형의 수정은 여기에서 하나씩 처리됩니다.

1 Mac에 redis 설치:

https://redis.io/download 현재 사용 중인 안정 버전은 4.0.9입니다. 압축을 푼 후 redis-4.0.9 디렉터리에 들어가서 make && sudo make install을 실행하고 설치를 위해 몇 분 정도 기다립니다.

2. Redis 시작:

명령줄에서 redis-server를 실행하면 기본 포트는 다음과 같습니다. 6379;

3. nodejs 클라이언트 설치:

이 디렉토리에서 Yarn init -y 후에 redis-node 디렉토리를 생성하고 nodejs의 redis 클라이언트를 설치하려면 다음 명령을 실행하십시오: https://github. .com/NodeRedis/node_redis

4. redis-node 디렉토리에서 다음으로 터미널에서 node를 실행하면 테스트를 위해 터미널에서 nodejs 코드를 실행할 수 있습니다. 먼저 클라이언트를 생성해 보겠습니다. 그리고 redis 서버에 연결하세요. 다음 연결 클라이언트 코드를 실행하기 전에 redis 서버가 실행 중인지 확인하세요. 터미널 공급자가 redis-server를 실행할 수 있으며 기본 포트는 6379입니다. 모든 것이 잘 되면 우리는 생성했습니다. Redis 서버에 연결하기 위한 클라이언트와 클라이언트 객체에 대한 후속 작업이 수행됩니다.

1. 문자열 유형

문자열 유형이지만 저장할 수 있는 데이터에는 문자열, 정수, 부동 소수점 숫자가 포함됩니다.

const redis = require('redis');
const client = redis.createClient(); //默认连接localhost:6379,具体配置参数可以参考文档https://github.com/NodeRedis/node_redis
로그인 후 복사
단순화를 위해 데이터 출력을 위한 콜백 함수를 정의합니다:

var res = client.set('name', 'abczhijia', (err, data) => {
 console.log('err: ', err, ' data: ', data);
}); // err: null data: OK,res的值是true
client.get('name', (err, data) => {
 console.log('err: ', err, ' data: ', data);
}); // err: null data: abczhijia
로그인 후 복사
정수에 대한 테스트를 해보겠습니다:

const cb = (err, data) => {
 console.log('err: ', err, ' data: ', data, ' data type: ', typeof data);
}
로그인 후 복사
설정이 정수이지만 출력될 때, 사실 여전히 문자열이므로 계산을 수행하려면 콜백 함수에서 직접 변환을 수행해야 합니다.

2. 목록 데이터 유형

client.set('age', 20, cb); //err: null data: OK data type: string
client.get('age', cb); //err: null data: 20 data type: string
로그인 후 복사
여기서 목록 작업은 하나 이상을 푸시할 수 있습니다. 오른쪽 rpush에서 데이터를 가져오거나 왼쪽 lpush에서 하나 이상의 데이터를 푸시할 수 있습니다. 또한 값을 가져올 때 전체 데이터를 가져오려면 시작 위치와 끝 위치를 지정해야 합니다. 끝 위치는 -1입니다.

3. 수집 데이터 유형

//从右侧推入
client.rpush('friends', 'mike', 'jhon', cb); //err: null data: 2 data type: number
client.lrange('friends', 0, -1, cb); //err: null data: [ 'mike', 'jhon' ] data type: object
//从左侧推入
client.lpush('friends', 'sam', 'bob', cb); //err: null data: 4 data type: number
client.lrange('friends', 0, -1, cb); // err: null data: [ 'bob', 'sam', 'mike', 'jhon' ] data type: object
//从右侧弹出
client.rpop('friends', cb); //err: null data: jhon data type: string
//从左侧弹出
client.lpop('friends', cb); //err: null data: bob data type: string
//打印看看发生了啥
client.lrange('friends', 0, -1, cb); // err: null data: [ 'sam', 'mike' ] data type: object
//查看索引位置的值
client.lindex('friends', 0, cb); // err: null data: sam data type: string
//对列表进行裁剪
client.rpush('friends', 'tom', 'bryant', cb)// err: null data: 4 data type: number
client.ltrim('friends', 1, 2, cb); //err: null data: OK data type: string
client.lrange('friends', 0, -1, cb); //err: null data: [ 'mike', 'tom' ] data type: object
로그인 후 복사

4. 해시 데이터 유형

//往集合ids中加几个元素
client.sadd('ids', 1, 2, cb); //err: null data: 2 data type: number
//查看集合元素
client.smembers('ids', cb); //err: null data: [ '1', '2' ] data type: object
//从集合中删除元素
client.srem('ids', 2, cb); // err: null data: 1 data type: number
//看看发生了啥
client.smembers('ids', cb); //err: null data: [ '1' ] data type: object
//看看集合有多少个元素
client.scard('ids', cb); //err: null data: 1 data type: number
//再加几个元素进去
client.sadd('ids', 3, 5, 8, 9); //
//判断元素是否在集合内
client.sismember('ids', 8, cb); // err: null data: 1 data type: number
client.sismember('ids', 80, cb); //err: null data: 0 data type: number
로그인 후 복사
이 기사의 사례를 읽으신 후 방법을 숙지하신 것으로 생각됩니다. PHP 중국어 웹사이트!

추천 도서:

ES6에서 전체 화면 스크롤 플러그인을 구현하는 단계에 대한 자세한 설명

nodejs 로그 모듈 winston 사용 방법 요약

위 내용은 nodejs의 redis 적용 사례에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿