redis学习笔记

本文详细介绍了Redis的权限不足问题,包括如何修改sudoers文件以获取root权限,解决sudo su权限错误,并处理文件权限导致的sudo命令执行失败。此外,还涵盖了Redis的安装过程,包括下载、解压、编译、安装以及启动步骤。文中提到了Redis的数据类型、应用场景,如缓存、分布式集群等,并记录了设置Redis密码、解决端口占用和启用多个端口号的方法。最后,文章涉及了固定虚拟机IP的问题和搭建Redis集群的初步步骤。

==============================================================

查看虚拟机IP: ifconfig  inet addr:192.168.148.129即为虚拟机IP

查看centos版本:cd/   

                           cat /etc/redhat-release

查看是否安装了gcc及gcc版本:cd/ 

                                                rpm -qa|grep gcc

                                                gcc -v

获取root权限   sudo su  再输入当前用户的密码就可以以root用户的身份登录到终端

在获取root权限输入密码时 出现 xxx(当前用户名) is not in the sudoers file.  This incident will be reported.

       解决:su(获取超级管理员权限)

                 vi /etc/sudoers

                 找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)

                 :wq!(保存退出 因此文件是只读文件,所以一定加!)                 

                 exit(退出超级管理员)  此后便可通过sudo获取权限

 没有移动文件权限

     # chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx

执行完这个命令后 于到问题 无法执行sudo su 各种尝试 一直提示

sudo: /usr/libexec/sudoers.so must be only be writable by owner 等 告诉你权限不足

解决方法: 尝试多种 最终有效应该是这个

在su后root身份下执行

 chmod 4755 /usr/lib/sudo/sudoers.so (我的虚拟机里 是chmod 4755 /usr/libexec/sudoers.so

然后reboot,输入sudo命令可以了。

Linux 命令

创建文件夹 mkdir /usr/local/...(前面加/是绝对路径)

创建文件 touch redis_log.log

以root身份查看 sudo vi redis.conf 

i 插入编辑

esc 退出编辑状态

:wq 保存退出

ps -ef |grep redis 检测后台进程是否存在

==============================================================

1.定义及数据类型

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如

字符串类型

散列类型(?)

列表类型(?)

集合类型

有序集合类型。

2.

应用场景

缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)

分布式集群架构中的session分离。

聊天室的在线好友列表。

任务队列。(秒杀、抢购、12306等等)

应用排行榜。

网站访问统计。

数据过期处理(可以精确到毫秒)

3.安装环境 192.168.200.128

 Redis 是c语言开发,建议linux上运行,下载的源码虚编译,依赖gcc环境

4.安装

 4.1下载redis-3.0.0.tar.gz 并拷贝到/usr/local下

 4.2解压 tar -zxvf redis-3.0.0.tar.gz

 4.3进入解压后的目录进行编译  cd /usr/local/redis-3.0.0   make

 4.4安装到指定目录 cd /usr/local/redis-3.0.0  make PREFIX=/usr/local/redis install

 4.5进入源码目录,内有一份配置文件redis.conf(在此可修改redis端口号) 将其拷贝到安装路径下

   cd/usr/local/redis

   mkdir conf

   cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin  (复制后在安装目录bin下可查)

5.启动

 xshell连接后 在redis/bin目录下 输入./redis-cli (-h 192.168.148.129 -p 6379)(自己虚拟机的ip端口号 可不写)

 测试连通 ping  PONG


-------------------------------------------------------------------------------------------------

redis 密码设置和查看密码

--不重启redis设置密码



-------------------------------------------------------------------------------------

开启redis-server 提示# Creating Server TCP listening socket *:6379: bind: Address already in use--解决方法

三步:

1.找到该进程

ps -ef | grep -i redis

  1. root      3086     1  0 Apr24 ?        00:00:07 ./bin/redis-server *:6379        
  2. root      3531  3467  0 01:00 pts/0    00:00:00 grep -i redis 

2.杀死该进程

kill -9 3086

3. 重启redis

./redis-server


---------------------------------------------------------------

redis 启用多个端口号

我安装了安装复制了3个redis 

并在redis.conf 中 将port分别改为 6379 6380 6381

启动分别为

./redis-server 

./redis-server --port 6380 

./redis-server --port 6381

---------------------------------------------------------------


=================================================

固定虚拟机IP

1.


2.


按理默认使用的应该是eth0 而我一直使用的是eth1 ipconfig的时候显示的也是eth1的IP

原因:

 当使用Linux更换了网卡,或者将虚拟机从一台电脑上拷贝到另外一台电脑上,又或者将你的硬盘从一台电脑上移到另一台电脑上使用时,由于设备网卡MAC地址的改变,但系统配置文件/etc/udev/rules.d/70-presistent-net.rules中仍然保留了老网卡的内容,新网卡则被识别eth1。所以会出现eth0变成eth1的情况,其实eth0变为eth1也没什么问题,但是变得不完全,导致无法上网这是一方面,还有就是我安装的一些应用软件是需要eth0来进行一些配置的,不然会导致软件不能正常使用

解决:

1、修改/etc/udev/rules.d/70-persistent-net.rules文件


(此图来源网络)

将之前的eth0那行删了,将eth1改为eth0

修改后为我的图


当更改结束后试图通过wq! 强制保存 结果提示"70-presistent-net.rules" E212: can't open file for writing
转而解决此问题:

解决:

使用

:w !sudo tee % > /dev/null
保存成功

2.配置ifcfg-eth0脚本  

ifcfg-eth0文件在CentOS中的路径为:/etc/sysconfig/network-scripts/ifcfg-eth0  

注意HWADDR那行,要和上图ATTR对应(在保存时出现了上图保存时发生的情况 同样处理)

3.接下来有人说要重启虚拟机 有人说要执行service network restart

我在执行重启命令后无反应 所以就重启了 重启后 ifconfig 发现ip变成了eth0的就没管了

--继续固定ip


此时就只剩一个了 但选中eth0 edit完成后进行保存时 提示:

 “Insufficient privileges”权限不足 

想法获取root 权限 此时在控制台获取显然是没有用的 设法在进入虚拟机的时候就用root 登录 

解决:修改root密码

1.重启虚拟机后 直接按(就是倒计时三秒内)ESC键 即可进入


(图片来源网络)

进入上面的界面后,按e键即可编辑grub的配置文件

2.


选择第二项,即:“kernel /vmlinuz-2.4.20-8 ro root=LABEL=/”。然后再按“e”编辑此项。
3.在后面加上“   single”      (注 意:前面有一个空格)。然后回车,再按“b”这样就启动了linux的单用户模式。
4.由于是单用户模式,所以不需要密码。启  动完毕后,在提示符下(注意这时提示符是sh-2.05b#之类的,不是以前的提示符了)输入:“passwd root”(passwd是修改用户密码的命令。)。然后根据提示修改密码就可以了。(有时会提示bad password,没有关系的。主要是设置的密码过于简单或者是常见的单词的原因。)
5.
shutdown -h now 关闭linux系统
重启,正常进入。OK,root密码被修改了。然后即可用root 登陆了

搭建redis集群 

-------再次继续固定ip。。。




接下来。。。。。继续搭建集群

修改从redis服务器上的redis.conf文件,添加slaveof redisip  redis端口

[确认一下master的ip和端口号

在redis/bin目录下 输入./redis-cli (-h 192.168.148.130 -p 6379)(自己虚拟机的ip端口号 可不写)

 测试连通 ping  PONG

(当然了,你要先启动对应redis的service服务)

]

(插播:rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件

------------ruby

redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境:

安装ruby

yum -y install ruby

yum -y install rubygems

 

 

 

安装rubyredis的接口程序   

拷贝redis-3.0.0.gem/usr/local

执行:

gem install /usr/local/redis-3.0.0.gem

 

 

window 7

解压 就使用

Setup.exe

Linux  自身不带  rpm  

解压

Tar –zxvf

Rpm –ivh  

Gem

具体安装忘记了 但安装时需要联网



就可以了

2.

/usr/local下创建redis-cluster目录,其下创建70017002。。7006目录

3.

redis安装目录bin下的文件拷贝到每个700X目录内,同时将redis源码目录src下的redis-trib.rb拷贝到redis-cluster目录下。

修改每个700X目录下的redis.conf配置文件:


图片来源网络

分别进入70017002...7006目录,执行:

cd ./7001

./redis-server ./redis.conf


执行redis-trib.rb,此脚本是ruby脚本,它依赖ruby环境。

./redis-trib.rb create --replicas 1 192.168.148.130:7001 192.168.148.130:7002 192.168.148.130:7003 192.168.148.130:7004 192.168.148.130:7005  192.168.148.130:7006

查询集群信息

./redis-cli -c -h 192.168.101.3 -p 7001 ,其中-c表示以集群方式连接redis-h指定ip地址,-p指定端口号

cluster info 查询集群状态信息


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值