Redis

WBOY
Release: 2024-08-10 20:42:33
Original
413 people have browsed it

Redis

Redis is a NOSQL database in which data is stored in key-value pairs.
Redis stores data on main memory meaning its fast but its volatile unlike database systems like PostgreSQL which stores data on disk.

Overview

In an application with a server and a database, accessing information on the database will cause latency.

Key-Value databases like redis is often kept in front of those databases and access operations takes 2 steps:

  1. If the information is in the cache,cache hit, the application retreives the information from redis and sends it to the client
  2. If not,cache miss, the application takes the information from the database , sends it to the client and stores it in the cache.

With these 2 steps and given that main memory has lower latency than disk, we can say that redis can be used to store and access frequent, recent data and expensive operations thereby making applications 10 to 50x faster.

It is thereby a fact that if at all you are going to building an application that is going to be scalable in the future, Redis(or databases similar to Redis) is indispensable.


Questions

  1. Is Redis Open Source?: Yes, Redis is open source with a special kind of license but there are alternatives like KeyDB by Snapchat and Memcached that are open source.KeyDBis a fork of Redis but as of now can only run on Linux.

  2. Does Redis Support Windows?: No, Redis does not support Windows, but you can install WSL/Ubuntu and install redis using

sudo apt install redis
Copy after login
Copy after login
  1. I am using WSL, Why isn't redis server working on my system: When running on WSL, you can run redis-server using
redis-server --port 6000
Copy after login

where 6000 is the port on your local server you want to run it on. (i.e. 127.0.0.1:6000).

Most issues are due to the fact that the default port that redis-server is using is already being used

  1. Are there client libraries for Redis?: Actually yes. you can find them on the Redis website or you can build one yourself.

Installing Redis

On Linux, installing redis is as simple as

sudo apt install redis
Copy after login
Copy after login

oron Mac:

brew install redis
Copy after login

Running Redis

You need to have2 instances of your terminalon

on the first one to run your server

redis-server -port  
Copy after login

and on the second one to run your client

redis-cli
Copy after login

When building a web app, you dont need to run the clientbut the server needs to be running

Redis Concepts

There are 3 main concepts in redis you should understandor 4

  1. Key-Value Pairs
  2. Lists
  3. Sets
  4. Hashes

All other data structures are mainly an advanced implementation of the first

Bylist, I meantarraynotlinked listand thats what redis calls it.


Key-Value Pairs

Key-Value pairs are a common data structure in most programming languages.

  1. In Python it is called dictionaries ordictin short

  2. In Javascript it is calledMaps

  3. In C# it is calledDictionaries

There are 6 main operations for key-value pairs in Redis

Operations Explanations Examples Further Explanation
SET Creates a key-value pair SET name John Sets key to map to value
GET Gets value for key GET name This returns John
DEL Deletes the key value pair DEL name This removesthe key value pair name from the database
EXISTS Checks if a key exists in the redis database EXISTS name returns 1 or 0 corresponding to True or False
FLUSHALL Clears the entire cache FLUSHALL more or less like DROP TABLE in postgres
KEYS * Returns all the keys in the database KEYS *

時間ベースの操作もあります。時間ベースの操作では、キーは設定された期間だけキャッシュ内にあり、時間が経過するとキャッシュはキーを削除します。

主に 2 つの時間ベースの操作があります

操作 説明 さらなる説明
期限切れ 定義後にキーを期限切れにする 期限切れの名前 10 10 秒後にキーと値の名前を削除します。キーは EXPIRE を呼び出す前に SET で定義する必要があります。一般的な代替案は次のとおりです:
セテックス 定義時にキーを期限切れにする セテックス 年齢 30 15 キーの有効期間を値 30 に設定し、その後 15 秒後にキーと値のペアを削除します
TTL 生存時間 TTL年齢 年齢キーが削除されるまでの残り時間を返します

ブログが長くなりすぎました。リストセットハッシュマップ、そしてredisに関する面接の質問については別のブログでお話します

ご質問がございましたら、下にコメントしてください。できる限りお答えいたします。⭐ハッピーコーディング

The above is the detailed content of Redis. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!