问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在linux中查询redis的数据

发布网友 发布时间:2022-04-19 12:42

我来回答

4个回答

懂视网 时间:2022-05-03 08:30

redis数据库在linux上的学习

1.redis安装方式

yum安装(提前配置好yum源)
 yum install redis -y 
源代码编译安装

rpm包手动安装

2.编译安装redis
1.下载redis源代码包
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
2.解压缩redis源码包

3.编译三部曲 
 指定安装路径 ,生成makefile 编译文件 
 ./configure --prefix=redis的安装路径
 开始编译
 make
 编译安装
 make install 
 编译完成后,默认生成可使用的redis命令
 /usr/local/bin/redis-server 
4.修改redis的配置文件,支持更安全的启动方式
 redis.conf 
 
#打开redis密码的参数
 requirepass aoligei
#开启安全模式
 protected-mode yes
#修改redis的默认启动端口,以及绑定地址
 bind 0.0.0.0
 port 6379
#守护进程方式
daemonize yes

redis的基本配置

#过滤出非空行,注释行的内容,重定向写入到一个文件中
 grep -v "^$" redis.conf |grep -v "^#" > s24redis.conf
#在配置文件结尾加上后台启动参数
daemonize yes

5.启动redis服务端
 redis-server s24redis.conf 

6.验证redis是否启动
 netstat -tunlp |grep redis
 ps -ef|grep redis 
 
7.指定密码登录redis
 [root@s24_linux ~]# redis-cli -p 6800
 127.0.0.1:6800> ping
 (error) NOAUTH Authentication required.
 127.0.0.1:6800> auth aoligei #登录 输入密码
 OK
 127.0.0.1:6800> 
 127.0.0.1:6800> 
 127.0.0.1:6800> ping
 PONG
 127.0.0.1:6800> keys *
 1) "chaoge"
 127.0.0.1:6800> get chaoge
 "zhenshuai"
 
8.redis常用命令学习

redis的五大数据类型

字符串(string)
散列(hash)
列表(list)
集合(set)
有序集合(zset)

keys * 查看所有key
type key 查看key类型
expire key seconds 过期时间
ttl key 查看key过期剩余时间 -2表示key已经不存在了
persist 取消key的过期时间 -1表示key存在,没有过期时间

exists key 判断key存在 存在返回1 否则0
del keys 删除key 可以删除多个
dbsize 计算key的数量

9.redis的字符串string使用命令

set   设置key
get 获取key
append 追加string
mset 设置多个键值对
mget 获取多个键值对
del 删除key
incr 递增+1
decr 递减-1

10.list双向队列用法

lpush 从列表左边插
rpush 从列表右边插
lrange 获取一定长度的元素 lrange key start stop
ltrim 截取一定长度列表
lpop 删除最左边一个元素
rpop 删除最右边一个元素
lpushx/rpushx key存在则添加值,不存在不处理

11.set集合类型,天然去重

sadd/srem 添加/删除 元素
sismember 判断是否为set的一个元素
smembers 返回集合所有的成员
sdiff 返回一个集合和其他集合的差异
sinter 返回几个集合的交集
sunion 返回几个集合的并集

12.zset有序集合,去重排序

zset的每一个成员都有一个分数与之对应,并且分数是可以重复的。有序集合的增删改由于有啦排序,执行效率就是非常快速的,即便是访问集合中间的数据也是非常高效的。

用来保存需要排序的数据,例如排行榜,成绩,工资等。

实例

利用有序集合的排序,排序学生的成绩

127.0.0.1:6379> ZADD mid_test 70 "alex"
(integer) 1
127.0.0.1:6379> ZADD mid_test 80 "wusir"
(integer) 1
127.0.0.1:6379> ZADD mid_test 99 "yuyu"

排行榜,zreverange 倒叙 zrange正序

127.0.0.1:6379> ZREVRANGE mid_test 0 -1 withscores
1) "yuyu"
2) "99"
3) "wusir"
4) "80"
5) "xiaofneg"
6) "75"
7) "alex"
8) "70"
127.0.0.1:6379> ZRANGE mid_test 0 -1 withscores
1) "alex"
2) "70"
3) "xiaofneg"
4) "75"
5) "wusir"
6) "80"
7) "yuyu"
8) "99"

移除有序集合mid_test中的成员,xiaofeng给移除掉

127.0.0.1:6379> ZREM mid_test xiaofneg
(integer) 1
127.0.0.1:6379> ZRANGE mid_test 0 -1 withscores
1) "alex"
2) "70"
3) "wusir"
4) "80"
5) "yuyu"
6) "99"

zcard返回有序集合mid_test的基数

127.0.0.1:6379> ZCARD mid_test
(integer) 3

zscore 返回成员的score值

127.0.0.1:6379> ZSCORE mid_test alex
"70"

zrank返回有序集合中,成员的排名。默认按score,从小到大排序,从0开始。

127.0.0.1:6379> ZRANGE mid_test 0 -1 withscores
1) "alex"
2) "70"
3) "wusir"
4) "80"
5) "yuyu"
6) "99"
127.0.0.1:6379> ZRANK mid_test wusir
(integer) 1
127.0.0.1:6379> ZRANK mid_test yuyu
(integer) 2

12.redis哈希类型(字典类型)

hset 设置散列值
hget 获取散列值
hmset 设置多对散列值
hmget 获取多对散列值
hsetnx 如果散列已经存在,则不设置(防止覆盖key)
hkeys 返回所有keys
hvals 返回所有values
hlen 返回散列包含域(field)的数量
hdel 删除散列指定的域(field)
hexists 判断是否存在

key -field1 -value1
-field 2 - value2
-field 3 - value3

redis的key

stu1 name changxin
age 8
weight 300
height 180

redis的持久化存储

rdb机制

RDB持久化产生的RDB文件是一个经过压缩的二进制文件

redis持久化之rdb机制,创建rdb的配置文件

touch rdbredis.conf

写入如下内容

daemonize yes #后台运行 
port 6379 #指定端口 
logfile /data/6379/redis.log #指定日志路径
dir /data/6379 #redis的数据文件,会存放在这里
dbfilename s24dbmp.rdb # 开启rdb持久化,且指定持久化文件的名字
bind 0.0.0.0
save 900 1 #定义触发rdb持久化的时间机制 
save 300 10
save 60 10000 #60秒之后有10000个修改就会存储

创建数据文件夹

mkdir -p /data/6379

指定rdb文件启动redis

redis-server s24rdbredis.conf

AOF方式

AOF(append-only log file)
记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集
AOF 文件中的命令全部以redis协议的格式保存,新命令追加到文件末尾。
优点:最大程序保证数据不丢
缺点:日志记录非常大

redis持久化之aof方式,以日志形式,把修改类的操作,记录下来

修改配置文件如下
touch s24aof.conf
写入如下内容

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
appendonly yes  #开启aof的俩参数
appendfsync everysec #aof的持久化机制 
#appendfsync 的参数
always 总是修改类的操作
everysec 每秒做一次持久化
no 依赖于系统自带的缓存大小机制

指定aof文件启动redis

redis-server s24aof.conf

不重启,切换rdb持久化为aof持久化

1.准备一个rdb的redis数据库
2.通过命令,直接切换aof

127.0.0.1:6379> CONFIG set appendonly yes #开启AOF功能
OK
127.0.0.1:6379> CONFIG SET save "" #关闭RDB功能
OK

3.正确情况下,会生成aof日志文件了,此时命令操作都是在aof里面了

4.还得修改配置文件,以上命令只是临时生效,改完以后,下次指定配置文件启动,就一直是aof了

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
dbfilename dbmp.rdb
save 900 1
save 300 10
save 60 10000
appendonly yes 
appendfsync everysec   

redis的主从复制

技术图片

redis的主从复制,可以基于redis的多实例完成,基于不同的端口,就能运行各个独立的redis数据库

redis的主从复制,做一个一主三从的实验

mredis.conf #主库的配置文件
port 6380
bind 0.0.0.0
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
dbfilename dump.rdb
dir /data/6380
protected-mode no

准备一个从库s1redis.conf

port 6381
daemonize yes
pidfile /data/6381/redis.pid
loglevel notice
logfile "/data/6381/redis.log"
dbfilename dump.rdb
dir /data/6381
protected-mode no
slaveof 127.0.0.1 6380 #也可以在配置文件中,直接定义,直接启动,默认就是主从复制了

准备第二个从库s2redis.conf

port 6382
daemonize yes
pidfile /data/6382/redis.pid
loglevel notice
logfile "/data/6382/redis.log"
dbfilename dump.rdb
dir /data/6382
protected-mode no
slaveof 127.0.0.1 6380 #也可以在配置文件中,直接定义,直接启动,默认就是主从复制了

创建三个数据库的数据文件夹

mkdir -p /data/{6380,6381,6382}

分别启动三个数据库实例

[root@s24_linux myredis]# redis-server mredis.conf 
[root@s24_linux myredis]# redis-server s1redis.conf 
[root@s24_linux myredis]# redis-server s2redis.conf 
[root@s24_linux myredis]# ps -ef|grep redis
root 78545 1 0 10:54 ? 00:00:00 redis-server *:6380
root 78550 1 0 10:54 ? 00:00:00 redis-server *:6381
root 78555 1 0 10:54 ? 00:00:00 redis-server *:6382

分别查看三个redis数据库的库信息

[root@s24_linux myredis]# redis-cli -p 6380 info replication 
[root@s24_linux myredis]# redis-cli -p 6381 info replication 
[root@s24_linux myredis]# redis-cli -p 6382 info replication 

通过命令,临时给三个数据库添加主从复制信息

redis-cli -p 6381 slaveof 127.0.0.1 6380 #给6381指定为6380的从库

redis-cli -p 6381 info replication  #查看6381的复制信息

redis-cli -p 6380 info replication  #查看6380的复制信息

redis-cli -p 6382 slaveof 127.0.0.1 6380 #给6382设置为6380的从库

redis-cli -p 6380 info replication

进行主从复制读写演示

6380可读可写
6381 6382只读,不给写

杀死从库,无所谓,再把从库重新启动,或者再创建一个新的就行

杀死主库,必须得手动解决故障,把从库切换为新的主库,继续主从复制

只需要剔除当前自己的从的身份即可,剔除6381的从的身份
127.0.0.1:6381> slaveof no one
OK

再次启动一个新的从库,以6381为主库即可

redis的哨兵配置,能够自动的解决主从切换故障

1.准备三个redis数据库实例,配置好,主从关系

[root@s24_linux myredis]# cat mredis.conf 
port 6380
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
dbfilename dump.rdb
dir /data/6380
protected-mode no



[root@s24_linux myredis]# cat s1redis.conf 

port 6381
daemonize yes
pidfile /data/6381/redis.pid
loglevel notice
logfile "/data/6381/redis.log"
dbfilename dump.rdb
dir /data/6381
protected-mode no
slaveof 127.0.0.1 6380



[root@s24_linux myredis]# cat s2redis.conf 



port 6382
daemonize yes
pidfile /data/6382/redis.pid
loglevel notice
logfile "/data/6382/redis.log"
dbfilename dump.rdb
dir /data/6382
protected-mode no
slaveof 127.0.0.1 6380

分别启动三个redis数据库节点

redis哨兵机制

2.准备三个哨兵sentinel(哨兵)的配置文件,三个哨兵配置文件,仅仅是端口的不同,默认是26379,26380,26381
s24shaobing.conf

port 26379 
dir /var/redis/data/
logfile "26379.log"
// 当前Sentinel节点监控 192.168.119.10:6379 这个主节点
// 2代表判断主节点失败至少需要2个Sentinel节点节点同意
// s24ms是主节点的别名
sentinel monitor s24ms 127.0.0.1 6380 2

//每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
sentinel down-after-milliseconds s24ms 30000

//当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel parallel-syncs s24ms 1

//故障转移超时时间为180000毫秒
sentinel failover-timeout s24ms 180000
//后台运行哨兵 
daemonize yes 

s24shaobing1.conf
s24shaobing2.conf

快速生成2个配置文件

[root@s24_linux myredis]# sed ‘s/26379/26380/g‘ s24shaobing.conf > s24shaobing1.conf
[root@s24_linux myredis]# sed ‘s/26379/26381/g‘ s24shaobing.conf > s24shaobing2.conf

创建数据文件夹

mkdir -p /var/redis/data/

3.分别启动三个哨兵进程

redis-sentinel s24shaobing.conf

redis-sentinel s24shaobing1.conf

redis-sentinel s24shaobing2.conf

[root@s24_linux myredis]# ps -ef|grep redis
root 78952 1 0 11:42 ? 00:00:00 redis-server :6380
root 78957 1 0 11:42 ? 00:00:00 redis-server
:6381
root 78963 1 0 11:42 ? 00:00:00 redis-server :6382
root 79051 1 0 11:51 ? 00:00:00 redis-sentinel
:26379 [sentinel]
root 79056 1 0 11:51 ? 00:00:00 redis-sentinel :26380 [sentinel]
root 79061 1 0 11:51 ? 00:00:00 redis-sentinel
:26381 [sentinel]

4.干掉master主库,哨兵会自动的选举一个从库为新的主库

5.将挂掉的主库,重新启动,查看复制信息

redis-cluster集群的搭建

1.准备6个数据库节点,搭建三主三从的数据库主从机群,6个节点,仅仅是端口的不同
指定7000~7005 6个节点
touch redis-7000.conf

port 7000
daemonize yes
dir "/opt/redis/data"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes #开启集群模式
cluster-config-file nodes-7000.conf  #集群内部的配置文件

touch redis-7001.conf
touch redis-7002.conf
touch redis-7003.conf
touch redis-7004.conf
touch redis-7005.conf

sed ‘s/7000/7001/g‘ redis-7000.conf > redis-7001.conf
sed ‘s/7000/7002/g‘ redis-7000.conf > redis-7002.conf
sed ‘s/7000/7003/g‘ redis-7000.conf > redis-7003.conf
sed ‘s/7000/7005/g‘ redis-7000.conf > redis-7005.conf

分别启动6个redis节点

2.配置ruby环境,一键创建redis机群slot槽位分配
yum直接安装ruby解释器
yum install ruby -y
下载ruby操作redis的模块
wget http://rubygems.org/downloads/redis-3.3.0.gem
gem install -l redis-3.3.0.gem
一键开启redis集群槽位分配,先找一下这个ruby工具在哪
find / -name redis-trib.rb

/s24fuxi/redis-4.0.10/src/redis-trib.rb create --replicas 1 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:7005
#检查集群状态
redis-cli -p 7000 cluster info

redis-cli -p 7000 cluster nodes #等同于查看nodes-7000.conf文件节点信息

集群主节点状态
redis-cli -p 7000 cluster nodes | grep master
集群从节点状态
redis-cli -p 7000 cluster nodes | grep slave

3.开启redis集群功能,向集群中写入数据,查看数据重定向

以集群模式登陆redis-cluster ,写入数据 
测试写入集群数据,登录集群必须使用redis-cli -c -p 7000必须加上-c参数

redis数据库在linux上的学习

标签:支持   dfs   lov   dbf   主从   tst   out   集群   交集   

热心网友 时间:2022-05-03 05:38

1、执行如图是命令,查看redis服务是否启动。

2、执行命令“redis-cli”进入redis命令行界面。

3、执行命令“dbsize”。

4、执行命令“flushall”刷新清除。

5、执行命令“ keys * ”进行验证redis是否为空,可以看到redi数据。

热心网友 时间:2022-05-03 06:56

使用Redis的脚本功能实现Redis中数据简单查询,有需要的朋友可以参考下。 在Redis的设计中,key是一切,对于Redis是可见的,而value对于Redis来说就是一个字节数组,Redis并不知道你的value中存储的是什么

热心网友 时间:2022-05-03 08:31

首先要链接redis客户端
redis-cli
然后要通过key来查找你存的数据,相当于一个数组,有key,有value,通过key来查看value的值。
keys * 注:列出当前redis存储的全部key。

keys W* 注:列出当前redis存储的key名里第一个是“W”的全部key。
找到key名字后,就可以查看key里存了什么值了。
get WXOX 注:WXOX是你查出来的key的名字。

然后就可以看到WXOX里存了什么东西了,可能存了一个字符串,也可能存了一个对象,要是空的话,就会输出nil,意思是啥也没有!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
"多难兴邦"这个词,让我们懂得了什么? uc怎么进入阅读模式 进入阅读模式方法介绍 uc怎么进入小说阅读模式 uc浏览器设置阅读模式-uc浏览器设置阅读模式方法 uc电脑阅读模式怎么设置电脑上UC浏览器的阅读模式怎么打开 微信怎么判断对方把你拉黑并且删除了,还是只是拉黑了? 公司诉讼由哪个法院管辖?公司诉讼管辖确定的理论依据? 笔记本电脑开机无法进入系统笔记本电脑开机后无法进入系统 从深圳到乌镇玩三天,花销最少是多少?越少越好,如果有个计划就更好乐 马上快过年放假了,第一次去见岳父,送茅台好还是五粮液好? linux下redis 怎么使用 linux 怎么安装redis 如何在linux开启redis 服务 Linux中怎么做设置Redis开机启动 linux怎么开启redis扩展 查看linux上面是否有安装redis,redis启动 如何从linux服务器启动redis linux redis集群怎么启动 redis 如何重启? linux下请输入命令不要用kill 的方式 linux下怎么进入redis操作 linux启动redis的命令 微信怎么解除关联账号 微信帐号被关联了,怎么解除关联 uc浏览器怎么取消微信关联 如何取消微信中关联的高铁管家账号? 微信怎么解除绑定的APP 微信关联怎么取消? 如何解除微信自动关联万方数据 怎样解除微信关联 微信公众号已经申请小程序成功,而且已关联。可微信打开小程序显示未发布,还有怎么修改设置小程序内容啊 linux中安装redis 是使用redis-cli命令的问题 linux下退出redis shutdown后怎么开启 怎么在Linux下安装配置Redis服务器 redis在linux下面怎么安装 linux安装好redis,怎么启动 linux 怎样安装redis linux上redis怎么动态看日志 苹果手机光标怎么取消 苹果7手机屏幕上那个光标怎么取消? 苹果手机怎么取消大光标的控制中心? 苹果手机输入文字时长那会一个圆圈如何取消? 苹果13手机中的切换控制中的移动光标是什么意思 苹果6游动光标如何取消 怎样关闭苹果4s手机上的光标 苹果5s怎么去掉屏幕上的光标啊 苹果手机怎么删除光标右边的字符? 苹果的移动光标怎么隐藏,至少操作过,忘记了 九阳豆浆机只加热不打豆是什么原因 九阳豆浆机只烧水,不研磨豆子是怎么回事 九阳豆浆机只加热不打豆子是怎么回事?