Redis教程

Redis 入门

本文主要是介绍Redis 入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、Redis是什么

Redis是完全开源免费的,用C语言编写,是一个单线程、高性能的(key / value)内存数据库,基于内存运行并支持持久化的nosql数据库。

安装:

Installation
From source code
Download, extract and compile Redis with:

$ wget https://download.redis.io/releases/redis-6.2.3.tar.gz
$ tar xzf redis-6.2.3.tar.gz
$ cd redis-6.2.3
$ make
The binaries that are now compiled are available in the src directory. Run Redis with:

$ src/redis-server
You can interact with Redis using the built-in client:

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

二、Redis数据结构

主要核心数据类型如下:
在这里插入图片描述

2.1、String 操作
在这里插入图片描述
在这里插入图片描述

我们平时在使用redis存储一个对象的时候,一般都是set userId JSON. 存储前将user序列化成json,获取的时候根据userId获取,然后反序列化成对象。这样比较直观和简单,但是存在一些问题,就是不太灵活。

还有一个中存储方式是,按照key(对象名:ID:属性), value(属性内容)去存储,这样数据结构就是:

set user:1:name test
set user:1:money 9999
127.0.0.1:6379> get user:1:money
"9999"
127.0.0.1:6379> get user:1:name
"test"
127.0.0.1:6379>

这样我们就可以直接获取到对象的属性,而且如果某个属性修改的时候,就可以更方便的只对某个属性进行修改了。不过这样的缺点,就是key会比较多。

在这里插入图片描述
当key不存在的时候才会设置成功并返回1,key已经存在的话设置失败返回0.

在这里插入图片描述
可以使用redis的incrby命令生成分布式系统全局ID,类似于雪花算法。

但是这个命令每次执行就加1,获取到一个新的全局ID。但是如果每次都这样来生成ID,那么redis压力太大了,所以我们可以直接增加1000,想等于一次生成1000个id,然后本机内存中保存加了1000后的这个数,然后在维护一个增长的数字当做ID。如果到达1000,继续去redis生成一个加1000的。目的是减少和redis的交互。

127.0.0.1:6379> incrby orderId 
(error) ERR wrong number of arguments for 'incrby' command
127.0.0.1:6379> incrby orderId 1
(integer) 1
127.0.0.1:6379> get orderId
"1"
127.0.0.1:6379> incrby orderId 1
(integer) 2
127.0.0.1:6379> 
127.0.0.1:6379> get orderId
"2"
127.0.0.1:6379> incrby orderId 100  // 一下增长100个
(integer) 102
127.0.0.1:6379> get orderId
"102"
127.0.0.1:6379>

2.2、Hash 操作

在这里插入图片描述
在这里插入图片描述
我们可以使用Hash数据结构来缓存一些对象。但是如果用户表user中有几十万条记录,那么此时redis中会缓存大量的数据。当我们使用hgetall key的时候,一下子可能会返回几十倍的数据,redis可能要执行非常久的时间!这样redis就会直接阻塞其他命令。Redis最怕的就是bugkey.

在这里插入图片描述

这篇关于Redis 入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!