NoSQL之Redis配置与优化(你不在南京的日子我替你吹了秦淮河的晚风)(二)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: NoSQL之Redis配置与优化(你不在南京的日子我替你吹了秦淮河的晚风)(二)

三、Redis安装部署


3.1 Redis安装

#关闭防火墙
systemct1 stop firewalld 
systemct1 disabled firewalld 
setenforce 0
#下载编译工具
yum install -y gcc gcc-c++ make 
#上传软件包并解压
tar zxvf redis-5.0.7.tar.gz 
cd /opt/redis-5.0.7/
#指明安装路径开始安装
make && make PREFIX=/usr/local/redis install
#由于Redis源码包中直接提供了Makefile文件,所以在解压完软件包后,不用先执行./configure 进行配置,可直接执行make与make install命令进行安装.
#执行软件包提供的insta11 server.sh 脚本文件设置Redis服务所需要的相关配置文件
cd/opt/redis-5.0.7/utils
./install_server.sh   #一直回车
Please select the redis executable path [] /usr/local/redis/bin/redis-server#需要手动修改为
/usr/local/redis/bin/redis-server #注意要一次性正确输入
#优化路径
ln -s /usr/local/redis/bin/* /usr/local/bin/
#查看端口状态
netstat -natp |grep redis




#开启/关闭/重启
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 restart
#配置文件参数
cd /etc/redis/
vim 6379.conf
......
70 bind 127.0.0.1 192.168.109.133  #监听的IP地址
93 port 6379   #监听端口
137 daemonize yes  #后台启动 
159 pidfile /var/run/redis_6379.pid  #Redis的进程号保存位置
172 logfile /var/log/redis_6379.log   #日志保存的位置
187 databases 16  #监听库的数量(编号0-15)


3.2 Redis命令工具

工具

作用
redis-server 用于启动redis的工具
redis-benchmark 用于检测redis在本机的运行效率
redis-check-aof 修复AOF持久化文件
redis-check-rdb 修复RDB持久化文件
redis-cli redis命令行工具

3.3 redis-cli:redis命令行工具

语法:redis-cli -h host -p port -a password
-h:指定远程主机机
-p:指定Redis服务的端口号
-a:指定密码,未设置数据库密码可以省略
#-a选项若不添加任何选项表示使用127.0.0.1:6379连接本机上的Redis数据库
#登录本机
redis-cli


3.4 redis-benchmark 测试工具

redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能

基本的测试语法:redis-benchmark [选项] [选项值].
-h:指定服务器主机名.
-p:指定服务器端口.
-s:指定服务器 socket
-c:指定并发连接数.
-n:指定请求数.
-d:以字节的形式指定SET/GET值的数据大小.
-k:l=keep alive 0=reconnect 
-r:SET/GET/INCR 使用随机key,SADD使用随机值.
-P:通过管道传输<numreg>请求.
-q:强制退出redis.仅显示query/sec值.
--csv:以CSV格式输出.
-l:生成循环,永久执行测试.
-t:仅运行以逗号分隔的测试命令列表.
-I:Idle模式.仅打开N个idle连接并等待.


#向IP地址为192.168.109.133、端口为6379的Redis服务器发送100个并发连接与100000个请求测试性能
redis-benchmark -h 192.168.109.133 -p 6379 -c 100 -n 100000


#测试存取大小为100字节的数据包的性能
redis-benchmark -h 192.168.109.133 -p 6379 -q -d 100

#测试本机上Redis服务在进行set与lpush操作时的性能
redis-benchmark -t set,lpush -n 100000 -q


四、Redis常用命令


命令 解释
set 存放数据
get 获取数据
keys * 查看所有的key
keys k? 查看k开头后面任意一位的数据
exists 判断键是否存在(存在1,不存在0)
del 删除键
type 查看键对应的value值类型
rename key1 key2 改名,不管key2是否存在都会改名成功,如果存在key1会覆盖key2
renamenx key1 key2 改名,若key2不存在,可以改名成功;反之不行
dbsize 查看当前数据库中key的数目

4.1 set、get

set:存放数据,命令格式为set key value 
get:获取数据,命令格式为 get key 
127.0.0.1:6379>set teacher zhangsan 
OK
127.0.0.1:6379>get teacher
"zhangsan"


4.2 keys

#keys命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用.
#先创建几个键
127.0.0.1:6379>set k1 1
127.0.0.1:6379>set k2 2 
127.0.0.1:6379>set k3 3 
127.0.0.1:6379>set vl 4 
127.0.0.1:6379>set v5 5
127.0.0.1:6379>set v22 5
127.0.0.1:6379>KEYS * #查看当前数据库中所有键
127.0.0.1:6379>KEYS v* #查看当前数据库中以v开头的数据
127.0.0.1:6379>KEYS v? #查看当前数据库中以v开头后面包含任意一位的数据
127.0.0.1:6379>KEYS v?? #查看当前数据库中以v开头v开头后面包含任意两位的数据


4.3 exists 判断键是否存在

返回1,存在


返回0,不存在

127.0.0.1:6379> exists teacher
(integer) 1
127.0.0.1:6379> exists name
(integer) 0
127.0.0.1:6379>


4.4 del 删除数据

127.0.0.1:6379> keys *
 1) "v22"
 2) "mylist"
 3) "k3"
 4) "v1"
 5) "k2"
 6) "teacher"
 7) "k4"
 8) "myset:__rand_int__"
 9) "counter:__rand_int__"
10) "key:__rand_int__"
11) "k1"
12) "k5"
127.0.0.1:6379> del teacher
(integer) 1
127.0.0.1:6379> keys *
 1) "v22"
 2) "mylist"
 3) "k3"
 4) "v1"
 5) "k2"
 6) "k4"
 7) "myset:__rand_int__"
 8) "counter:__rand_int__"
 9) "key:__rand_int__"
10) "k1"


4.5 rename 重命名

#使用rename命令进行重命名时,无论目标key是否存在都进行重命名,且源key的值会覆盖目标key的值。
127.0.0.1:6379> keys *
 1) "v22"
 2) "mylist"
 3) "k3"
 4) "v1"
 5) "k2"
 6) "k4"
 7) "myset:__rand_int__"
 8) "counter:__rand_int__"
 9) "key:__rand_int__"
10) "k1"
11) "k5"
127.0.0.1:6379> rename k1 k111
OK
127.0.0.1:6379> keys *
 1) "v22"
 2) "mylist"
 3) "k3"
 4) "v1"
 5) "k2"
 6) "k4"
 7) "k111"
 8) "myset:__rand_int__"
 9) "counter:__rand_int__"
10) "key:__rand_int__"
11) "k5"


4.6 renamenx

127.0.0.1:6379> keys *
 1) "v22"
 2) "mylist"
 3) "k3"
 4) "v1"
 5) "k2"
 6) "k4"
 7) "k111"
 8) "myset:__rand_int__"
 9) "counter:__rand_int__"
10) "key:__rand_int__"
11) "k5"
127.0.0.1:6379> renamenx k2 k222
(integer) 1
127.0.0.1:6379> renamenx k222 k3
(integer) 0
127.0.0.1:6379> keys *
 1) "v22"
 2) "mylist"
 3) "k3"
 4) "k222"
 5) "v1"
 6) "k4"
 7) "k111"
 8) "myset:__rand_int__"
 9) "counter:__rand_int__"
10) "key:__rand_int__"
11) "k5"


4.7 dbsize查看key数目

127.0.0.1:6379> dbsize
(integer) 11
127.0.0.1:6379> 
#一共11个键


4.8 type查看数据类型

127.0.0.1:6379> type k111
string
127.0.0.1:6379> get k111
"1"
127.0.0.1:6379>


4.9 设置密码

#设置密码
config set requirepass  000000
#auth认证
auth 000000
#查看密码
config get requirepass
#删除密码
config set requirepass ''

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1天前
|
存储 监控 NoSQL
NoSQL与Redis配置与优化
通过合理配置和优化Redis,可以显著提高其性能和可靠性。选择合适的数据结构、优化内存使用、合理设置持久化策略、使用Pipeline批量执行命令、以及采用分布式集群方案,都是提升Redis性能的重要手段。同时,定期监控和维护Redis实例,及时调整配置,能够确保系统的稳定运行。希望本文对您在Redis的配置与优化方面有所帮助。
38 23
|
2天前
|
存储 监控 NoSQL
NoSQL与Redis配置与优化
通过合理配置和优化Redis,可以显著提高其性能和可靠性。选择合适的数据结构、优化内存使用、合理设置持久化策略、使用Pipeline批量执行命令、以及采用分布式集群方案,都是提升Redis性能的重要手段。
25 7
|
NoSQL Redis
[Redis]Redis指南二 配置
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/73863746 我们可以...
934 0
|
3月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
121 1
|
19天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
164 85
|
3月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
87 6
|
16天前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。
|
2月前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
2月前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
|
2月前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
356 22
下一篇
开通oss服务