`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笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-21redisinsight-v2
- 2024-02-26Typed property App\Api\Mapper\GamePropsConfigMapper::$apiRedis must not be accessed before initia-icode9专业技术文章分享
- 2024-02-21redisson getlock
- 2024-02-20redis config
- 2024-02-20redis leaderboard
- 2024-01-23缓存选型:Redis or MemCache
- 2024-01-22面试官:Redis持久化能关吗?怎么关?
- 2024-01-21Redis压测工具redis-benchmark-icode9专业技术文章分享
- 2024-01-19这才是你应该了解的Redis数据结构!
- 2024-01-18Redis系列:使用 Redis Module 扩展功能