linux安装单机版redis详细步骤,及python连接redis案例

简介: 这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。

linux相关工具

./redis-benchmark     #用于进行redis性能测试的工具 
./redis-check-dump    #用于修复出问题的dump.rdb文件    
./redis-cli           #redis的客户端
./redis-server        #redis的服务端
./redis-check-aof     #用于修复出问题的AOF文件
./redis-sentinel      #用于集群管理

yum方式安装redis

yum安装版本固定,不能达到我们的需求

yum -y install redis

使用编译安装redis



mkdir -p /data/application     //创建工作目录

cd  /data/application
wget http://download.redis.io/releases/redis-5.0.10.tar.gz   //下载redis

tar xf redis-5.0.10.tar.gz    //解压

mv redis-5.0.10/ redis

cd redis/

yum install -y gcc make     //安装编译工具

make       //编译安装

cp redis.conf redis.conf.bak     //备份编译后的配置文件

vim redis.conf     //配置文件
bind 0.0.0.0            #所有ip可以访问
daemonize yes         #开启后台模式将on改为yes
timeout 300          #连接超时时间
port 6379                #端口号
dir /data/application/redis/data  #本地数据库存放持久化数据的目录该目录-----需要存在
pidfile /var/run/redis_6379.pid   #定义pid文件存放位置
logfile /var/log/redis.log        #定义log文件存放位置

创建存放数据的目录
mkdir -p /data/application/redis/data

配置redis为systemctl启动

cd /lib/systemd/system
vim redis.service

[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf --daemonize no 
ExecStop=/data/application/redis/src/redis-cli shutdown 

[Install]
WantedBy=multi-user.target
===================================
参数详解:
[Unit] 表示这是基础信息 
Description 是描述
After 是在那个服务后面启动,一般是网络服务启动后启动

[Service] 表示这里是服务信息 
ExecStart 是启动服务的命令
ExecStop 是停止服务的指令

[Install] 表示这是是安装相关信息 
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
=====================================
启动服务:
systemctl daemon-reload
systemctl start redis.service


配置环境变量启动
vim /etc/profile
export PATH=$PATH:/redis文件目录/src

source /etc/profile    刷新环境变量文件


启动
redis/src/redis-server redis/redis.conf --daemonize yes   //本机


停止
redis/src/redis-cli shutdown    //本机
redis/src/redis-cli -h ip -p 端口  shutdown

其它: 安装redis6.0

# 下载压缩包
wget https://download.redis.io/releases/redis-6.2.1.tar.gz

# 解压
tar xzf redis-6.2.1.tar.gz

# 进入压缩包
cd redis-6.2.1

# 编译安装
make

# 终端启动
src/redis-server

# 进入redis终端界面
src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

# 启动,进入redis安装目录: /home/xxx/redis-6.2.1 ,执行:
nohup src/redis-server &

# 关闭保护模式和设置密码,如下设置密码为:redisxxx,然后退出
src/redis-cli
redis>config get protected-mode
redis>config set protected-mode no
redis>config get requirepass
redis>config set requirepass "redisxxx"
redis>quit

# 再访问终端时需要加上密码
src/redis-cli -a redisxxx

python连接redis案例

# -*- encoding: utf-8 -*-
import time
import redis

# 连接方式一: 直接连接Redis数据库
client = redis.Redis(host='123.56.xx.xx', port=6379, password='redisredis', db=2, decode_responses=True)
# print(client)
# 连接方式二: 创建Redis连接池,用于管理所有连接,避免每次建立、释放连接的开销
# pool = redis.ConnectionPool(host='123.56.67.212', port=6379, decode_responses=True)
# client = redis.Redis(connection_pool=pool)


# 连接数据库
# client = redis.StrictRedis(host='123.56.67.212', port=6379, password='redisredis', db=1)


def write_str():
    """# 写入字符串类型的数据"""
    client.set('name11', 'Django11')
    # 获取name的数据
    print('获取数据方法一:', client['name11'])
    # print('获取数据方法二:', client.get('name'), client.get('name').decode())

    client.set(name='string', value='Python')
    # 获取字符串的数据
    print('获取字符串的数据:', client['string'])
    print('获取字符串的数据:', client.get('string'))


def write_hset():
    # 写入散列类型的数据
    # client.hset(name='hash', key='name', value='Tom')
    # client.hset(name='hash', key='age', value=10)
    # client.hset(name='hash', key='address', value='UK')
    # # 获取散列的数据
    # print('获取散列的数据:', client.hget(name='hash', key='name'))

    with client.pipeline(transaction=False) as pipe:
        start = time.time()
        for i in range(1, 10000):
            pipe.lpush('num_data', f'num{i}')
            # pipe.hset()
            if i % 100 == 0:
                try:
                    res = pipe.execute()
                    print(res)
                except Exception as e:
                    print(e)
        print("程序耗时:", time.time() - start)


    # # 创建管道对象
    # pipe = client.pipeline()
    # client.hset(name='my_hmset', key='zhangsan', value=0)
    # client.hset(name='lisi', key='zhangsan', value=0)
    # client.hset(name='wangwu', key='zhangsan', value=0)
    # client.hset(name='zhaoliu', key='zhangsan', value=0)
    # ret = pipe.execute()
    #

    # client.hset(name='data_type', key='size', value='Tom')
    # client.hset(name='data_type', key='num', value=10)
    # # 获取散列的数据
    # print('获取散列的数据:', client.hget(name='hash', key='name'))


def write_list():
    # 写入列表类型的数据: 将元素写入列表的左边
    client.lpush('list', 'Mr Li', 'Miss Lu')
    # 将元素写入列表的右边
    client.rpush('list', 'Miss Wang', 'Mir Zhang')
    # 获取列表的数据
    # lpop()从最左边获取元素,数据获取后在数据库中移除
    print('获取列表的数据:', client.lpop('list'))
    # rpop()从最右边获取元素,数据获取后在数据库中移除
    print('获取列表的数据:', client.rpop('list'))


def write_set():
    # 写入集合类型的数据
    client.sadd('set', 'UK', 'CN', 'US', 'JP')
    # 获取集合的数据
    print('获取集合的数据:', client.smembers('set'))

    # # 写入有序集合类型的数据,每个数据设有权重,权重以整数表示
    # client.zadd(name='sord_set', mapping={'GZ': 1, 'BJ': 2, 'SZ': 3, 'SH': 4})
    # # 获取有序集合的数据
    # print('获取有序集合的数据:', client.zrange('sord_set', 0, -1))


def write_bytes():
    # 写入位图类型的数据
    # 将bytes的数据设为字符串数据
    client.set(name='bytes', value='Python')
    print('二进制数据的第二位数为:', client.getbit(name='bytes', offset=1))
    # setbit()将字符串数据转为二进制数据,然后将第二位数改为0
    client.setbit(name='bytes', offset=1, value=0)


def write_stream():
    # 写入流类型的数据
    stream_id = client.xadd(name='stream', fields={
   'name': 'Tom'})
    # 获取流数据的id
    print('获取流数据的id:', stream_id)
    stream_id = client.xadd(name='stream', fields={
   'msg': 'Hello Python'})
    # 获取流数据的id
    print('获取流数据的id:', stream_id)


if __name__ == '__main__':
    # write_str()
    # write_hset()
    # write_list()
    write_set()
    # write_bytes()
    # write_stream()
相关文章
|
4月前
|
安全 Linux 编译器
BigCloud Enterprise Linux 8和Rocky Linux 8升级OpenSSH步骤
本文介绍了在BigCloud Enterprise Linux 8.2/8.6和Rocky Linux 8.10上升级OpenSSH的详细步骤。首先配置Telnet服务和GCC编译器以确保远程登录安全,接着备份旧版OpenSSH并下载、编译、安装最新版本(如9.9p1)。然后创建新的sshd系统服务配置文件,调整配置并启动服务。最后验证升级效果,关闭不必要的Telnet服务,并处理可能的防火墙和SELinux问题。通过这些步骤可有效修复低版本OpenSSH带来的高危漏洞。
225 13
|
1月前
|
Linux
Linux下版本控制器(SVN) -服务器端环境搭建步骤
Linux下版本控制器(SVN) -服务器端环境搭建步骤
77 0
Linux下版本控制器(SVN) -服务器端环境搭建步骤
|
2月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
85 18
|
2月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
666 16
|
2月前
|
存储 监控 NoSQL
Redis设计与实现——单机Redis实现
Redis 是一个高性能的键值存储系统,支持丰富的数据结构(字符串、列表、哈希等)。其核心由键空间、过期字典和阻塞/监控键组成,通过惰性删除与定期删除策略管理过期数据。持久化方面,Redis 提供 RDB 快照和 AOF 日志两种机制,分别适用于快速恢复和高数据安全性场景。RDB 以二进制格式保存数据库快照,AOF 则记录写操作命令并支持重写优化文件大小。 此外,Redis 支持多数据库切换、内存淘汰策略(如 LRU)、慢查询日志等功能,满足不同业务需求。在生产环境中,推荐结合 RDB 和 AOF 的混合持久化方式,兼顾性能与数据安全。
|
2月前
|
数据采集 存储 NoSQL
分布式爬虫去重:Python + Redis实现高效URL去重
分布式爬虫去重:Python + Redis实现高效URL去重
|
5月前
|
缓存 NoSQL Redis
Redis原理—2.单机数据库的实现
本文概述了Redis数据库的核心结构和操作机制。
Redis原理—2.单机数据库的实现
|
4月前
|
搜索推荐 算法 程序员
6个案例15分钟让你了解Python套路
Python以其简洁易读的语法,成为编程初学者的首选。本文通过7个经典代码案例,带你快速了解Python编程的核心概念和常用技巧: 1. **九九乘法口诀**:使用嵌套循环打印乘法表。 2. **列表求和**:展示两种方法(for循环和内置函数sum())计算列表元素之和。 3. **素数判断**:编写函数判断一个数是否为素数。 4. **斐波那契数列**:生成指定长度的斐波那契数列。 5. **冒泡排序**:实现简单的冒泡排序算法。 6. **汉诺塔问题**:通过递归解决经典的汉诺塔问题。 这些案例不仅展示了Python的基础语法,更体现了编程思维的重要性,帮助初学者逐步掌握编程套路。
101 2
|
7月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
7月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
408 7