复习电商笔记-25-redis操作

 

Redis启动

 

 

启动错误

The Windows version of Redis allocates a large memory mapped file for sharing
the heap with the forked process used in persistence operations. This file
will be created in the current working directory or the directory specified by
the 'heapdir' directive in the .conf file. Windows is reporting that there is 
insufficient disk space available for this file (Windows error 0x70).
You may fix this problem by either reducing the size of the Redis heap with
the --maxheap flag, or by moving the heap file to a local drive with sufficient
space.
Please see the documentation included with the binary distributions for more 
details on the --maxheap and --heapdir flags.
Redis can not continue. Exiting. 

redis.conf配置文件中设置

maxheap 1014000000

 

 

启动配置

配置文件:redis.conf

设置模式

vi redis.conf
daemonize yes	#默认为no

端口配置:

默认6379

配置数据库数量:

配置内存大小:

会生成一个和内存大小一样的文件。

maxmemory 200mb   #在真实环境必须部署,否则物理内存会被耗尽。一般配置200mb/500mb/1gb/2gb。可以分散到多台服务器,和其它业务共享服务器,以充分利用资源。同时因为分散,防止单点故障,造成大量缓存失效。

maxmemory 200mb

 

 

启动

redis-server 					#默认找redis.conf配置文件
redis-server &					#上面ctrl+c中断reis会退出,这个不会
redis-server redis6380.conf	#指定配置文件,这样可以启动多个实例

注意两种启动方式的差异

ps -ef|grep redis
root      3511     1  0 16:29 ?   00:00:01 redis-server *:6379
root      3515     1  0 16:29 ?   00:00:01 redis-server 127.0.0.1:6380
注释掉redis.conf配置文件中的48行;# bind 127.0.0.1 ::1即可

 

 

版本

redis-server –v

Redis server v=3.2.5 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=e6c4c3113548f6b0

redis-cli –v

 

 

设置访问密码

默认没有密码,可以随意访问。redis速度相当快,在一个较好的服务器下,外部用户每秒可以进行15w此的密码尝试,这意味着必须指定非常强大的密码来防止暴力破解。

如果要加,打开redis.conf的

requirepass 123456          #480行,设置请求密码,这样访问时都需要先登录

127.0.0.1:6379> auth 123456		#客户端访问方式
jedis.auth(“123456”);				#jedis访问方式

 

 

详细信息

redis-cli
127.0.0.1:6379> info     #查看当前redis节点的详细配置信息

 

Redis命令

 

 

redis-cli的使用之发送命令

默认连接:IP 127.0.0.1 端口 6379

redis-cli

指定IP端口:

redis-cli –h 127.0.0.1 –p 6379

Redis提供了PING-PONG机制,测试与客户端和服务器链接是否正常

redis-cli ping

redis-cli
redis 127.0.0.1:6379>ping
PONG

 

 

redis-cli的使用之命令返回值

状态回复(最简单的回复-redis提供的测试命令)

redis>PING
PONG
127.0.0.1:6379>SET test 123
OK

错误回复(以error开头,后面跟着错误信息)

127.0.0.1:6379>TEST
(error) ERR unknown command 'TEST'

整数回复

127.0.0.1:6379>INCR test_incr
(integer) 1

字符串回复(最长久的一种回复,双引号包裹)

127.0.0.1:6379>get test
“123”

多行字符串回复

127.0.0.1:6379>KEYS *
1) "test_incr"
2) "test"

 

 

exist(退出)

退出

127.0.0.1:6379> exit

shutdown(关闭)

关闭

127.0.0.1:6379> shutdown

 

 

 

 

keys

字符串类型是redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。可以存储JSON化的对象、字节数组等。一个字符串类型键允许存储的数据最大容量是512MB。

赋值与取值:

SET key value

GET key

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set test 123
OK
127.0.0.1:6379> set test1 ab
OK
127.0.0.1:6379> keys *
1) "test1"
2) "test"
127.0.0.1:6379> get test
"123"
127.0.0.1:6379> get test1
"abc"
127.0.0.1:6379> get test2
(nil)
127.0.0.1:6379>

 

 

select

redis默认支持16个数据库,对外都是以一个从0开始的递增数字命名,可以通过参数database来修改默认数据库个数。客户端连接redis服务后会自动选择0号数据库,可以通过select命令更换数据库,例如选择1号数据库:

127.0.0.1:6379>SELECT 1

OK

127.0.0.1:6379>GET test

(nil)

说明:

Redis不支持自定义数据库名称。

Redis不支持为每个数据库设置访问密码。

Redis的多个数据库之间不是安全隔离的,FLUSHALL命令会清空所有数据库的数据。

 

 

keys

获取符合规则的建名列表。

KEYS *

keys test[_]*

keys t[a-d]

说明:

?  匹配一个字符

*   匹配任意个(包括0个)字符

[]  匹配括号间的任一字符,可以使用“-“表示范围。如a[a-d]匹配ab/ac/ad

\x  匹配字符x,用于转义符合,如果要匹配“?“就需要使用\?

 

 

clear

清除屏幕内容

 

 

exists

判断一个键是否存在。

如果键存在则返回整数类型1,否则返回0。

127.0.0.1:6379> keys *

1) "test_incr"

2) "test"

127.0.0.1:6379> exists test

(integer) 1

127.0.0.1:6379> exists test1

(integer) 0

127.0.0.1:6379>

 

 

del

删除键,可以删除一个或者多个键,多个键用空格隔开,返回值是删除的键的个数。

127.0.0.1:6379> del test

(integer) 1

127.0.0.1:6379> del test

(integer) 0

127.0.0.1:6379> del test test_incr

(integer) 1

127.0.0.1:6379>

 

 

type

获得键值的数据类型,返回值可能是string(字符串)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。

127.0.0.1:6379> keys *

1) "test1"

2) "test"

127.0.0.1:6379> type test

string

127.0.0.1:6379> type test1

string

 

 

help

127.0.0.1:6379> help

redis-cli 2.8.19

Type: "help @<group>" to get a list of commands in <group>

      "help <command>" for help on <command>

      "help <tab>" to get a list of possible help topics

      "quit" to exit

127.0.0.1:6379> help type



  TYPE key

  summary: Determine the type stored at key

  since: 1.0.0

  group: generic

官网:http://www.redis.io帮助

 

 

flushall

清空所有数据库。

127.0.0.1:6379> FLUSHALL

OK

 

 

flushdb

清空当前数据库。

127.0.0.1:6379> FLUSHDB

OK

 

Redis数据类型之字符串

存放的字符串为二进制是安全的。字符串长度支持到512M。

 

 

incr/incrby

递增数字INCR key

当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递增后的值。

127.0.0.1:6379> keys *

1) "test1"

2) "test"

127.0.0.1:6379> get test

"123"

127.0.0.1:6379> get test1

"abc"

127.0.0.1:6379> get test2

(nil)

127.0.0.1:6379> incr num

(integer) 1

127.0.0.1:6379> keys *

1) "num"

2) "test1"

3) "test"

127.0.0.1:6379> incr num

(integer) 2

127.0.0.1:6379> incr num

(integer) 3

127.0.0.1:6379>

从上面例子可以看出,如果num不存在,则自动会创建,如果存在自动+1。

指定增长系数

语法:INCRBY key increment

127.0.0.1:6379> incr num

(integer) 2

127.0.0.1:6379> incr num

(integer) 3

127.0.0.1:6379> incrby num 2

(integer) 5

127.0.0.1:6379> incrby num 2

(integer) 7

127.0.0.1:6379> incrby num 2

(integer) 9

127.0.0.1:6379> incr num

(integer) 10

127.0.0.1:6379>

 

 

decr/decrby

减少指定的整数

DECR key

DECRBY key decrement

127.0.0.1:6379> incr num

(integer) 10

127.0.0.1:6379> decr num

(integer) 9

127.0.0.1:6379> decrby num 3

 

 

incrbyfloat

整数时,第一次加可以得到正确结果,浮点数后再加浮点就会出现精度问题。

原来下面的例子2.8.7注意在新版本中已经修正了这个浮点精度问题。3.0.7

INCRBYFLOAT key decrement

127.0.0.1:6379> set num

(integer) 131

127.0.0.1:6379> incrbyfloat num 0.7

“131.7”

127.0.0.1:6379> incrbyfloat num 0.7

“132.3999999999999999”

 

 

append

向尾部追加值。如果键不存在则创建该键,其值为写的value,即相当于SET key value。返回值是追加后字符串的总长度。

语法:APPEND key value

127.0.0.1:6379> keys *

1) "num"

2) "test1"

3) "test"

127.0.0.1:6379> get test

"123"

127.0.0.1:6379> append test "abc"

(integer) 6

127.0.0.1:6379> get test

"123abc"

127.0.0.1:6379>

 

 

strlen

字符串长度,返回数据的长度,如果键不存在则返回0。注意,如果键值为空串,返回也是0。

语法:STRLEN key

127.0.0.1:6379> get test

"123abc"

127.0.0.1:6379> strlen test

(integer) 6

127.0.0.1:6379> strlen tnt

(integer) 0

127.0.0.1:6379> set tnt ""

OK

127.0.0.1:6379> strlen tnt

(integer) 0

127.0.0.1:6379> exists tnt

(integer) 1

127.0.0.1:6379>

 

 

mset/mget

同时设置/获取多个键值

语法:MSET key value [key value …]

      MGET key [key …]

127.0.0.1:6379> flushall

OK

127.0.0.1:6379> keys *

(empty list or set)

127.0.0.1:6379> mset a 1 b 2 c 3

OK

127.0.0.1:6379> mget a b c

1) "1"

2) "2"

3) "3"

127.0.0.1:6379>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Node-RED 中操作 Redis 数据需要使用 Redis 官方提供的 Node.js 客户端库,即 `redis` 库。可以通过在命令行中输入以下命令来安装该库: ``` npm install redis ``` 安装完成后,在 Node-RED 工具栏中点击右上角的菜单按钮,选择“Manage palette”打开“Palette Manager”窗口,搜索并安装“node-red-contrib-redis”节点模块。 安装完成后,可以在 Node-RED 编辑器的左侧节点栏中找到“redis”节点,该节点提供了一系列 Redis 操作的功能,包括连接 Redis 服务器、读取数据、写入数据、删除数据等。 以下是一个简单的示例,演示如何在 Node-RED 中操作 Redis 数据: 1. 首先需要连接 Redis 服务器,可以使用`redis`节点中的`redis-server`配置节点。将该节点拖放到工作区中,并配置连接信息,包括服务器地址、端口号和密码(如果有的话)。 2. 接下来,我们可以使用`redis`节点中的`redis in`节点来读取 Redis 数据。将该节点拖放到工作区中,并配置读取信息,包括键名和数据类型。 3. 然后,我们可以使用`function`节点来对读取到的数据进行处理。将该节点拖放到工作区中,并编写 JavaScript 代码,对读取到的 Redis 数据进行处理。 4. 最后,我们可以使用`redis`节点中的`redis out`节点来写入 Redis 数据。将该节点拖放到工作区中,并配置写入信息,包括键名、数据类型和数据值。 示例流程图如下: ![node-red-redis-example-flow](https://cdn.jsdelivr.net/gh/TheaJie/blog-images/images/2022/03/node-red-redis-example-flow.png) 其中,`redis-server`节点配置如下: ![node-red-redis-server-config](https://cdn.jsdelivr.net/gh/TheaJie/blog-images/images/2022/03/node-red-redis-server-config.png) `redis in`节点配置如下: ![node-red-redis-in-config](https://cdn.jsdelivr.net/gh/TheaJie/blog-images/images/2022/03/node-red-redis-in-config.png) `function`节点代码如下: ```javascript msg.payload = "Hello " + msg.payload; return msg; ``` `redis out`节点配置如下: ![node-red-redis-out-config](https://cdn.jsdelivr.net/gh/TheaJie/blog-images/images/2022/03/node-red-redis-out-config.png) 执行该示例后,可以在 Redis 中查看到写入的数据,如下所示: ![node-red-redis-data](https://cdn.jsdelivr.net/gh/TheaJie/blog-images/images/2022/03/node-red-redis-data.png) 以上就是在 Node-RED 中操作 Redis 数据的简单示例,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值