中国建设银行网站-诚聘英才wordpress首页添加图片
中国建设银行网站-诚聘英才,wordpress首页添加图片,免费网站制作在线,网站 管理系统一、引言今天给大家讲讲非关系型数据库Redis.二、非关系型数据库Redis1. Redis 概述1.1 什么是RedisRedis#xff08;Remote Dictionary Server#xff09;是一个开源的、基于内存的键值对存储数据库#xff0c;它可以用作数据库、缓存和消息中间件。1.2 Redis 的特点基于内…一、引言今天给大家讲讲非关系型数据库Redis.二、非关系型数据库Redis1. Redis 概述1.1 什么是RedisRedisRemote Dictionary Server是一个开源的、基于内存的键值对存储数据库它可以用作数据库、缓存和消息中间件。1.2 Redis 的特点基于内存运行数据主要存储在内存中读写性能极高支持数据持久化可以将内存中的数据保存到磁盘重启后可以再次加载使用丰富的数据类型支持字符串strings、哈希hashes、列表lists、集合sets、有序集合sorted sets等支持事务操作都是原子性要么全部执行要么全部不执行丰富的特性支持发布/订阅、键过期等特性1.3 Redis应用场景缓存系统减轻数据库压力提升系统性能计数器如网站访问量、点赞数等消息队列利用列表类型实现简单的消息队列排行榜利用有序集合实现各种排行榜功能会话存储存储用户会话信息2. Redis软件安装2.1 Windows 系统安装方法一:用小皮安装(推荐)方法二:使用官方版本访问 Redis 官网下载 Windows 版本解压到指定目录如C:\redis打开命令提示符进入 Redis 目录运行命令redis-server.exe redis.windows.conf方法三使用 WSLWindows Subsystem for Linux# 在 WSL 中安装 Redis sudo apt update sudo apt install redis-server # 启动 Redis 服务 sudo service redis-server start # 检查 Redis 状态 sudo service redis-server status2.2 Mac系统安装方式1: HomebrewHomebrew是MacOS上的一个包管理器它可以让安装和管理软件变得非常简单。首先你需要安装Homebrew如果你还没有安装的话。打开终端然后粘贴以下命令来安装# 安装 Homebrew如果尚未安装 /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) # 安装 Redis brew install redis # 启动 Redis后台运行 brew services start redis # 或手动启动 redis-server /usr/local/etc/redis.conf # 检查是否运行 # 在另一个终端窗口中你可以使用以下命令来检查Redis服务器是否正在运行 redis-cli ping # 应返回 PONG,表示Redis服务器正在正常运行。方式2:源码编译安装# 下载最新稳定版 curl -O http://download.redis.io/redis-stable.tar.gz tar xzf redis-stable.tar.gz cd redis-stable # 编译 make # 测试编译结果 make test # 安装到 /usr/local/bin sudo make install # 创建配置文件目录 sudo mkdir /etc/redis sudo cp redis.conf /etc/redis/ # 修改配置文件可选 vim /etc/redis/redis.conf # 启动 Redis redis-server /etc/redis/redis.conf2.3 Linux系统安装Ubuntu/Debian 系统# 更新软件包列表 sudo apt update # 安装 Redis sudo apt install redis-server # 启动 Redis 服务 sudo systemctl start redis-server # 设置开机自启 sudo systemctl enable redis-server # 检查 Redis 状态 sudo systemctl status redis-serverCentOS/RHEL 系统# 安装 EPEL 仓库 sudo yum install epel-release # 安装 Redis sudo yum install redis # 启动 Redis 服务 sudo systemctl start redis # 设置开机自启 sudo systemctl enable redis2.4 验证安装安装完成后可以通过以下命令测试 Redis 是否正常工作# 连接 Redis 客户端 redis-cli # 在 Redis 客户端中测试 127.0.0.1:6379 ping PONG 127.0.0.1:6379 set test Hello Redis OK 127.0.0.1:6379 get test Hello Redis 127.0.0.1:6379 exit三、Python操作Redis1. redis-py 模块安装1.1 使用 pip 安装# 安装 redis-py pip install redis # 或者指定版本 pip install redis4.5.01.2 使用 conda 安装conda install redis-py1.3 验证安装上述两者都指向同一个 Python 库redis-py库在导入时都是import redis安装完成后可以在 Python 中验证是否安装成功import redis print(redis.__version__)2. redis-py 模块使用2.1 连接 Redis 数据库基本连接import redis # 创建 Redis 连接对象 r redis.Redis( hostlocalhost, # Redis 服务器地址 port6379, # Redis 服务器端口 db0, # 数据库编号默认0 passwordNone, # 密码如果没有设置密码则为None decode_responsesTrue # 自动解码返回字符串而不是字节 ) # 测试连接 try: response r.ping() print(Redis 连接成功:, response) except redis.ConnectionError as e: print(Redis 连接失败:, e)2.2 字符串String操作设置和获取值import redis r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue) # 设置单个值 r.set(name, 张三) r.set(age, 25) # 获取单个值 name r.get(name) age r.get(age) print(f姓名: {name}, 年龄: {age}) # 设置多个值 r.mset({city: 北京, job: 工程师}) # 获取多个值 values r.mget([name, age, city, job]) print(多个值:, values) # 设置值并设置过期时间单位秒 r.setex(temp_data, 60, 临时数据) # 60秒后自动删除数值操作import redis r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue) # 设置初始值 r.set(counter, 0) # 自增操作 r.incr(counter) # 1 print(自增后:, r.get(counter)) r.incrby(counter, 5) # 5 print(增加5后:, r.get(counter)) # 自减操作 r.decr(counter) # -1 print(自减后:, r.get(counter)) r.decrby(counter, 3) # -3 print(减少3后:, r.get(counter))2.3 哈希Hash操作import redis r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue) # 设置哈希字段 r.hset(user:1001, name, 李四) r.hset(user:1001, age, 30) r.hset(user:1001, city, 上海) # 获取单个字段 name r.hget(user:1001, name) print(f用户名: {name}) # 获取所有字段 user_info r.hgetall(user:1001) print(用户信息:, user_info) # 设置多个字段 r.hmset(user:1002, { name: 王五, age: 28, city: 广州 }) # 获取多个字段 fields r.hmget(user:1002, [name, age]) print(指定字段:, fields) # 获取所有字段名 field_names r.hkeys(user:1001) print(字段名:, field_names) # 获取所有字段值 field_values r.hvals(user:1001) print(字段值:, field_values) # 删除字段 r.hdel(user:1001, city) print(删除后:, r.hgetall(user:1001))2.4 列表List操作import redis r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue) # 从左侧添加元素 r.lpush(tasks, task1, task2, task3) # 从右侧添加元素 r.rpush(tasks, task4, task5) # 获取列表长度 length r.llen(tasks) print(f列表长度: {length}) # 获取列表元素 all_tasks r.lrange(tasks, 0, -1) print(所有任务:, all_tasks) # 获取指定范围的元素 first_three r.lrange(tasks, 0, 2) print(前三个任务:, first_three) # 从左侧弹出元素 left_task r.lpop(tasks) print(f左侧弹出: {left_task}) # 从右侧弹出元素 right_task r.rpop(tasks) print(f右侧弹出: {right_task}) print(剩余任务:, r.lrange(tasks, 0, -1))2.5 集合Set操作import redis r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue) # 添加元素 r.sadd(tags, python, redis, database, cache) # 获取所有元素 all_tags r.smembers(tags) print(所有标签:, all_tags) # 判断元素是否存在 is_member r.sismember(tags, python) print(python是否存在:, is_member) # 获取集合元素数量 tag_count r.scard(tags) print(f标签数量: {tag_count}) # 随机弹出一个元素 random_tag r.spop(tags) print(f随机弹出: {random_tag}) # 移除指定元素 r.srem(tags, database) print(移除后:, r.smembers(tags)) # 集合运算 r.sadd(set1, a, b, c) r.sadd(set2, b, c, d) # 交集 intersection r.sinter(set1, set2) print(交集:, intersection) # 并集 union r.sunion(set1, set2) print(并集:, union) # 差集 difference r.sdiff(set1, set2) print(差集:, difference)2.6 有序集合Sorted Set操作import redis r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue) # 添加带分数的元素 r.zadd(leaderboard, { player1: 1000, player2: 1500, player3: 800, player4: 2000 }) # 按分数升序获取 asc_players r.zrange(leaderboard, 0, -1, withscoresTrue) print(升序排名:, asc_players) # 按分数降序获取 desc_players r.zrevrange(leaderboard, 0, -1, withscoresTrue) print(降序排名:, desc_players) # 获取元素分数 score r.zscore(leaderboard, player2) print(fplayer2的分数: {score}) # 增加元素分数 r.zincrby(leaderboard, 500, player1) print(增加后player1分数:, r.zscore(leaderboard, player1)) # 获取排名 rank r.zrevrank(leaderboard, player4) # 从0开始的排名 print(fplayer4的排名: {rank 1}) # 转换为从1开始的排名 # 按分数范围获取 high_scores r.zrangebyscore(leaderboard, 1000, 3000, withscoresTrue) print(高分玩家:, high_scores)2.7 键操作和过期时间import redis import time r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue) # 设置键值对 r.set(session:user123, user_data) # 检查键是否存在 exists r.exists(session:user123) print(键是否存在:, exists) # 设置过期时间秒 r.expire(session:user123, 300) # 5分钟后过期 # 获取剩余生存时间 ttl r.ttl(session:user123) print(f剩余生存时间: {ttl}秒) # 设置键值对并指定过期时间 r.setex(temp:code, 60, 123456) # 60秒后过期 # 移除过期时间使键永久存在 r.persist(session:user123) # 查找匹配模式的键 all_keys r.keys(*) print(所有键:, all_keys) session_keys r.keys(session:*) print(会话键:, session_keys) # 删除键 r.delete(session:user123) print(删除后是否存在:, r.exists(session:user123))四、结语Redis差不多就是这些,之后会给大家讲一下数据分析和Linux