Practical project sharing of redis application in nodejs
This time I will bring you a practical project sharing of redis application in nodejs. What are the precautions for redis application in nodejs. The following is a practical case, let's take a look.
redis is an in-memory database with very good performance. It is deployed as a caching data library between the application and mysql data, which can greatly improve the performance of the application. Here is a brief introduction to the nodejs client The demo program for terminal operation of redis
redis can store a total of 5data types, which are string, list, set, three columns, and ordered set; Here, the additions, deletions, checks and modifications of these five data types will be processed one by one;
1. Installation of redis on mac:
https://redis. io/download, the current stable version I am using is 4.0.9. After decompressing, enter the redis-4.0.9 directory, execute make && sudo make install, and wait a few minutes to install it;
2 , redis startup:
Execute redis-server on the command line to start, the default port is 6379;
3. Install nodejs client:
Create the redis-node directory, After yarn init -y in this directory, execute the command: yarn add redis to install the redis client of nodejs. Reference document: https://github.com/NodeRedis/node_redis
4. In redis- In the node directory, execute node on the terminal, and you can execute the nodejs code responsively on the terminal for testing. Let’s start the demo program
First, create a client and connect to the redis server. After executing the following connection Before client code, please make sure that the redis server is running: the terminal provider can execute redis-server, the default port is 6379;
const redis = require('redis'); const client = redis.createClient(); //默认连接localhost:6379,具体配置参数可以参考文档https://github.com/NodeRedis/node_redis
If everything goes well, we have created a client to connect to the redis server. Subsequent operations are performed on the client object.
1. String type
Although it is a string type, the data that can be stored includes strings, integers and floating point numbers.
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
For the sake of simplicity, we define a callback function for outputting data:
const cb = (err, data) => { console.log('err: ', err, ' data: ', data, ' data type: ', typeof data); }
Let’s do a test for integers:
client.set('age', 20, cb); //err: null data: OK data type: string client.get('age', cb); //err: null data: 20 data type: string
It can be seen that although the setting is an integer, when it is output, it is still a string, so if you want to perform calculations, you need to do the conversion yourself in the callback function
2. List data type
//从右侧推入 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
Note here that the list operation can push one or more data from the right rpush, or push one or more data from the left lpush; in addition, when taking the value, you need to specify the start and end Position, if you want to get the entire position, you can write the end position as -1.
3. Collection data type
//往集合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
4. Hash data type
//往散列上添加多组键值对 client.hmset('phone', 'price', 5888, 'name', 'iphonex', cb); //err: null data: OK data type: string //查看多个键的值 client.hmget('phone', 'price', 'name', cb); //err: null data: [ '5888', 'iphonex' ] data type: object //查看键值对的数量 client.hlen('phone', cb); //err: null data: 2 data type: number //删掉其中一个键值对 client.hdel('phone', 'price', cb); //err: null data: 1 data type: number //看看price是否还在? client.hmget('phone', 'price', cb); //err: null data: [ null ] data type: object,原来只留下了null //再加几个属性 client.hmset('phone', 'vendor', 'apple', 'madein', 'china', cb); //取出所有的键值对 client.hgetall('phone', cb); //err: null data: { name: 'iphonex', vendor: 'apple', madein: 'china' } data type: object //取出所有的键 client.hkeys('phone', cb); //err: null data: [ 'name', 'vendor', 'madein' ] data type: object //取出所有的值 client.hvals('phone', cb); //err: null data: [ 'iphonex', 'apple', 'china' ] data type: object //判断键是否存在 client.hexists('phone', 'name', cb); //err: null data: 1 data type: number client.hexists('phone', 'price', cb); //err: null data: 0 data type: number
I believe you have read the case in this article After mastering the method, please pay attention to other related articles on the php Chinese website for more exciting content!
Recommended reading:
How to use Vue SSR component loading
Vue.js internal listener use case analysis
The above is the detailed content of Practical project sharing of redis application in nodejs. For more information, please follow other related articles on the PHP Chinese website!

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

Python and JavaScript have their own advantages and disadvantages in terms of community, libraries and resources. 1) The Python community is friendly and suitable for beginners, but the front-end development resources are not as rich as JavaScript. 2) Python is powerful in data science and machine learning libraries, while JavaScript is better in front-end development libraries and frameworks. 3) Both have rich learning resources, but Python is suitable for starting with official documents, while JavaScript is better with MDNWebDocs. The choice should be based on project needs and personal interests.

The shift from C/C to JavaScript requires adapting to dynamic typing, garbage collection and asynchronous programming. 1) C/C is a statically typed language that requires manual memory management, while JavaScript is dynamically typed and garbage collection is automatically processed. 2) C/C needs to be compiled into machine code, while JavaScript is an interpreted language. 3) JavaScript introduces concepts such as closures, prototype chains and Promise, which enhances flexibility and asynchronous programming capabilities.

Different JavaScript engines have different effects when parsing and executing JavaScript code, because the implementation principles and optimization strategies of each engine differ. 1. Lexical analysis: convert source code into lexical unit. 2. Grammar analysis: Generate an abstract syntax tree. 3. Optimization and compilation: Generate machine code through the JIT compiler. 4. Execute: Run the machine code. V8 engine optimizes through instant compilation and hidden class, SpiderMonkey uses a type inference system, resulting in different performance performance on the same code.

JavaScript's applications in the real world include server-side programming, mobile application development and Internet of Things control: 1. Server-side programming is realized through Node.js, suitable for high concurrent request processing. 2. Mobile application development is carried out through ReactNative and supports cross-platform deployment. 3. Used for IoT device control through Johnny-Five library, suitable for hardware interaction.

I built a functional multi-tenant SaaS application (an EdTech app) with your everyday tech tool and you can do the same. First, what’s a multi-tenant SaaS application? Multi-tenant SaaS applications let you serve multiple customers from a sing

This article demonstrates frontend integration with a backend secured by Permit, building a functional EdTech SaaS application using Next.js. The frontend fetches user permissions to control UI visibility and ensures API requests adhere to role-base

JavaScript is the core language of modern web development and is widely used for its diversity and flexibility. 1) Front-end development: build dynamic web pages and single-page applications through DOM operations and modern frameworks (such as React, Vue.js, Angular). 2) Server-side development: Node.js uses a non-blocking I/O model to handle high concurrency and real-time applications. 3) Mobile and desktop application development: cross-platform development is realized through ReactNative and Electron to improve development efficiency.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver CS6
Visual web development tools

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Dreamweaver Mac version
Visual web development tools