`Redis笔记

2021/4/15 19:55:17

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

Mac安装Redis

1.下载
https://redis.io/download
2.解压
tar zxvf redis-6.2.1.tar.gz
3.校验
sudo make test
4.安装
sudo make install
5.启动
redis-server /xxx/redis.conf
6.终止
redis-cli shutdown
7.后台
修改redis.conf ->daemonize = yes
8.密码
requipass = xxx
9.认证
auth password
10.文档
http://redisdoc.com

配置项

#修改为守护模式
daemonize yes
#设置进程锁文件
pidfile /usr/local/redis-4.0.11/redis.pid
#端口
port 6379
#客户端超时时间
timeout 300
#日志级别
loglevel debug
#日志文件位置
logfile /usr/local/redis-4.0.11/log-redis.log
#设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 16
##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
#save <seconds> <changes>
#Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
#指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,
#可以关闭该#选项,但会导致数据库文件变的巨大
rdbcompression yes
#指定本地数据库文件名
dbfilename dump.rdb
#指定本地数据库路径
dir /usr/local/redis-4.0.11/db/
#指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能
#会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有
#的数据会在一段时间内只存在于内存中
appendonly no
#指定更新日志条件,共有3个可选值:
#no:表示等操作系统进行数据缓存同步到磁盘(快)
#always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
#everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec

常用命令

查看所有key:
keys *
判断存在:
exists key
key移库:
move key db_index
设置过期:
expire key n(second)
查看过期(-1永不过期,-2已过期):
ttl key
查看类型:
type key

string

  • 增减
    自增1:i ncr key
    自减1: decr key
    增n: incrby key n
    减n: decrby key n
  • 切片
    取值:getrange key index_0 index_1
    替换:setrange key index xxx
  • 定时键值
    setex key seconds value
  • 非覆盖设键值
    setnx key value
  • 批量
    mset/mget/msetnx

哈希

命令说明
HDEL key field1 [field2]删除一个或多个哈希表字段
HEXISTS key field查看哈希表 key 中,指定的字段是否存在。
HGET key field获取存储在哈希表中指定字段的值。
HGETALL key获取在哈希表中指定 key 的所有字段和值
HINCRBY key field increment为哈希表 key 中的指定字段的整数值加上增量 increment 。
HINCRBYFLOAT key field increment为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
HKEYS key获取所有哈希表中的字段
HLEN key获取哈希表中字段的数量
HMGET key field1 [field2]获取所有给定字段的值
HMSET key field1 value1 [field2 value2 ]同时将多个 field-value (域-值)对设置到哈希表 key 中。
HSET key field value将哈希表 key 中的字段 field 的值设为 value 。
HSETNX key field value只有在字段 field 不存在时,设置哈希表字段的值。
HVALS key获取哈希表中所有值。
HSCAN key cursor [MATCH pattern] [COUNT count]迭代哈希表中的键值对。

集群创建

0.集群TCP端口:

  • 普通客户端通信端口(通常为6379)用于与客户端通信,以向需要访问群集的所有客户端以及所有其他群集节点(使用客户端端口进行密钥迁移)开放。
  • 群集总线端口(客户端端口+ 10000)必须可从所有其他群集节点访问。

1.创建目录:

[root@localhost ~]#cd /usr/local/
[root@localhost ~]#mkdir -p redis-cluster/{6379,7000,7001,7002,7003,7004}

2.各目录创建redis.conf配置文件:

# 允许访问ip
bind 0.0.0.0
# 指定端口——————(修改)
port 7004
# 启动后台运行
daemonize yes
# 存放进程Id ——————(修改)
pidfile /usr/local/redis-cluster/7004/7004.pid
# 日志文件——————(修改)
logfile "7004.log"
# 3600秒内有一个key变化就执行快照持久化
save 3600 1
# 快照存放文件——————(修改)
dbfilename 7004.rdb
# 工作目录——————(修改)
dir /usr/local/redis-cluster/7004
# 是否启动保存操作日志
appendonly yes
# 操作日志存放文件——————(修改)
appendfilename "7004.aof"
# 是否开启集群
cluster-enabled yes
# 集群配置文件(启动后自动生成)——————(修改)
cluster-config-file nodes-7004.conf
# 集群节点ping、pong超时时间
cluster-node-timeout 5000

3.分别启动各节点:

[root@localhost redis-cluster]# cd 6379
[root@localhost redis-cluster]# redis-server redis.conf 
[root@localhost redis-cluster]# cd ../7000/
[root@localhost redis-cluster]# redis-server redis.conf 
[root@localhost redis-cluster]# cd ../7001/
[root@localhost redis-cluster]# redis-server redis.conf 
[root@localhost redis-cluster]# cd ../7002/
[root@localhost redis-cluster]# redis-server redis.conf 
[root@localhost redis-cluster]# cd ../7003/
[root@localhost redis-cluster]# redis-server redis.conf  

5.创建集群:

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:6379 \
--cluster-replicas 1
  • 连接某个节点:
redis-cli -a cyclone -c -h 127.0.0.1 -p 7001
  • 关闭某个节点:
redis-cli -a cyclone -c -h 127.0.0.1 -p 7001 shutdown
  • 重启某个节点
# 	被关闭的节点重启后自动加入集群
redis-server /usr/local/redis-cluster/7001/redis.conf
  • 查看集群节点信息:
redis-cli -h 127.0.0.1 -p 7001 cluster nodes


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


扫一扫关注最新编程教程