前言
Redis是一种NoSQL(not-only sql,泛指非关系型数据库)的数据库。由 C 语言开发的一个开源的高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。
官网地址:https://redis.io/
中文官方地址:http://www.redis.cn/
Redis常见的数据类型有:
在日常的开发或测试过程中,经常会接触到Redis。工欲善其事必先利其器,下面简单介绍一下Redis在Windows、Linux、Mac上的快速搭建过程。
Redis 支持 32 位和 64 位。根据系统平台的实际情况选择即可。下载地址:https://github.com/tporadowski/redis/releases
配置好环境变量,切换到 redis 目录下运行:
redis-cli.exe -h 127.0.0.1 -p 6379
下载地址:http://redis.io/download,下载最新稳定版本。以6.0.6版本为例:
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
Redis-6.0.6版本安装步骤如下:
systemctl stop firewalld
systemctl disable firewalld
CentOS默认安装的GCC是4.8.5的版本,Redis6依赖gcc 5以上的版本
yum install gcc
gcc -v
yum -y install centos-release-scl # 升级到9.1版本
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
tar xzf redis-6.0.6.tar.gz
cd redis-6.0.6
make & make install
make完后 redis-6.0.6目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位 于安装目录 src 目录下。
vi /etc/profile # 编辑配置文件,添加环境变量信息
source /etc/profile # 重载配置文件
添加配置文件的内容:
export REDIS_HOME=/home/redis-6.0.6 export PATH=PATH:REDIS_HOME/src
bind 192.168.1.123 # 默认为127.0.0.1,即本地回环地址,只能通过本机的客户端连接,而无法通过远程连接。bind设置为本机IP地址,允许任意计算机通过此IP地址连接,如本机有两个IP1和IP2,当bind设置了IP1时,那么只能通过IP1连接redis,而通过IP2无法连接。 daemonize yes # 后台启动 protected‐mode no # 保护模式,默认yes开启状态,为了限制公网访问redis,加强安全性。启用条件:① protected mode设置为yes;② 没有bind ip;③ 没有设置访问密码;(以上条件必须同时满足,否则不会开启保护机制)
cd src
./redis-server # 以默认方式启动Redis
./redis-server ../redis.conf # 指定配置文件方式启动Redis
./redis-cli # 以默认方式启动Redis客户端,127.0.0.1、6379
./redis-cli -h 192.168.1.123 -p 6379 # 启动Redis客户端,并指定连接的主机和端口号
通过一段Python代码简单测试redis连通性:
import redis
class RedisHandler:
def __init__(self, host, port=6379, db=0):
self.client = redis.StrictRedis(host=host, port=port, db=db) # 生成客户端连接,StrictRedis()默认使用连接池,不必再单独使用ConnectPool
def set_string(self, name: str, value, ex=None, px=None, nx=False, xx=False) -> None:
"""
缓存中写入str(单个)
:param name: 缓存名称
:param value: 缓存值
:param ex: 过期时间(秒)
:param px: 过期时间(毫秒)
:param nx: 如果设置为True,则只有name不存在时,当前set操作才执行(新增)
:param xx: 如果设置为True,则只有name不存在时,当前set操作才执行(修改)
:return:
"""
self.client.set(name, value=value, ex=ex, px=px, nx=nx, xx=xx)
def get_key(self, name):
"""读取缓存"""
print(self.client.get(name))
if __name__ == '__main__':
redis = RedisHandler(host='192.168.1.123')
redis.set_string("test1", 0)
redis.get_key("test1")
#!/bin/sh
cur_pass=`pwd` # 定义当前所在路径的变量
redis_install_long=$cur_pass"/redis_log"
echo "==`date`==REDIS INSTALL START====" >>$redis_install_long
if [ $# -ne 2 ];then
echo "==`date`==INSTALL REDIS SERVER PARA ERROR====" >>$redis_install_long
exit -1
fi
echo "PARA NUMBER [$@]" >>$redis_install_long
if [ -d "/usr/local/redis" ];then
echo "==`date`==REDIS INSTALL EXISTS====" >>$redis_install_long
exit 0
fi
dbserverip=$1 # 定义传入的参数,执行时传入本机地址
rm -fr redis-6.0.8 # 删除原有的解压目录
`tar zxf redis-6.0.8.tar.gz` # 解压缩
cd redis-6.0.8
make PREFIX=/usr/local/redis install
cp utils/redis_init_script /etc/rc.d/init.d/redis
if [ ! -d "/etc/redis/" ];then
mkdir -p /etc/redis/ # 创建Redis配置文件目录
fi
sed s/dbserverip/$dbserverip/g -i redis.conf # 替换配置文件中的dbserverip
if [ ! -d "/home/jumploo/data/" ];then
mkdir -p /home/jumploo/data/ # 创建Redis数据目录
fi
cp redis.conf /etc/redis/6379.conf
echo "==`date`==REDIS INSTALL SUCCESS====" >>$redis_install_long
/etc/init.d/redis start > /dev/null 2>&1 & # 启动Redis
chmod +x redis_server_install.py
./redis_server_install.py 192.168.1.123
brew install gcc
gcc安装后可在/usr/bin目录中查看到
由于Mac系统默认使用的是clang,在make时会报错,因此需要将编译工具从clang改为gcc
① 打开配置文件:vi ~/.zprofile,并在末尾添加如下内容:
由于安装的是gcc-11版本,因此需要配置为11
② 重新加载配置文件:
source ~/.zprofile
③ 此时再通过gcc --version命令查看版本时,显示的就是gcc的相关信息,而不再是clang了
通过wget命令在线下载,或直接解压附件安装包,或到官网http://redis.io/download下载均可,通过wget命令下载的话需要先安装wget工具
① 安装wget工具:
brew install wget
② 下载redis:
brew install wget
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
③ 解压Redis
tar -xvf redis-6.0.6.tar.gz
cd redis-6.0.6
④ make
make
4.启动Redis
./redis-server
启动成功会显示如下图标:
① make install 报错”install: /usr/local/bin/redis-server: Permission denied“
尝试使用sudo make install命令代替make install,安装成功后,系统会自动将redis-6.0.6/src下的相关脚本复制到/usr/local/bin下