centos上安装redis
# win 上装redis # 上线--》centos装了--》详细研究 # docker 装---》配置--》持久化 # 官网看看 -redis源码 -----》自己编译 -redis stack----》编译过后的可执行文件 -6.x版本 # 咱们刚刚下了几个软件 -redis-6.2.14 -reids-7.2.3 -redis-stack-7.2.3 # 我们基于源码---》在不同平台编译成相应平台的可执行文件 -mac -linux -乌班图 -centos -win:是编译不了的 # c语言编译工具:gcc
编译安装
1.3.1下载安装 #下载 wget https://download.redis.io/releases/redis-6.2.13.tar.gz #解压 tar -xzf redis-6.2.13.tar.gz #建立软连接 ln -s redis-6.2.13 redis cd redis make&&make install # make install--->安装---》会在/usr/local/bin/ 放几个可执行文件 #在src目录下可以看到 #redis-server--->redis服务器 #redis-cli---》redis命令行客户端 #redis-sentinel---》sentinel服务器,哨兵 ------------------------ #redis-benchmark---》redis性能测试工具 #redis-check-aof--->aof文件修复工具 #redis-check-dump---》rdb文件检查工具 #redis作者对windows维护不好,window自己有安装包 ####卸载redis # 1、查看redis进程; ps aux|grep redis # 2、kill掉进程; kill 进程id # 3、进入到redis目录 cd /usr/local/ # 4、删除redis对应的文件 rm -f /usr/local/redis/bin/redis* rm -f /usr/local/bin/redis* # 5、删除对应的文件 rm -rf redis
redis启动
#1 最简启动 redis-server ps aux|grep redis #查看进程 # yum install net-tools -y netstat -antpl|grep redis #查看端口 redis-cli -h ip -p port ping #命令查看 127.0.0.1 localhost 0.0.0.0 有什么区别? localhost:是个域名---》在操作系统的host文件---》中配置了跟127.0.0.1对应的 127.0.0.1:回环地址---》本地--》只经过网络层就回来了 应用层--》网络--》应用层 192.168.1.64:需要从应用层---》数据链路层---》回到应用层 0.0.0.0:不是一个有效ip,服务监听这个地址--》等同于监听本机网卡所有地址 127.0.0.1 192.168.1.64 #2动态参数启动 redis-server --port 6380 #启动,监听6380端口 ###3 配置文件启动 #配置文件启动(6379对应手机按键MERZ,意大利女歌手Alessia Merz的名字) #####通过redis-cli连接,输入config get * 可以获得默认配置--》100来对 #在redis目录下创建config目录,copy一个redis.conf文件 #daemonize--》是否是守护进程启动(no|yes) #port---》端口号 #logfile--》redis系统日志 #dir--》redis工作目录 配置文件 ''' daemonize yes #是否以守护进程启动 pidfile /var/run/redis.pid #进程号的位置,删除 port 6379 #端口号 dir /root/lqz/redis/data #工作目录 logfile redis.log # 日志文件名 bind 0.0.0.0 ''' #在redis目录下新建data目录,用来存放书籍 #启动redis redis-server ./redis.conf #查看进程 ps -ef |grep redis |grep 6379 #查看日志 cd data cat redis.log
redis客户端操作
# 图形化界面---》resp ###客户端连接### redis-cli -h 127.0.0.1 -p 6379 ping #返回PONG ## 有密码的情况可以两种登陆方式 # 方式一 redis-cli -h 127.0.0.1 -p 6370 -a 123456 # 方式二 先登陆,再通过auth输入密码 ## redis-cli进入 CONFIG GET * 一百多对建值 CONFIG SET maxmemory 128M # 设置最大使用的内存 CONFIG set requirepass 123456 # 设置密码 CONFIG REWRITE # 保存到配置文件 ### redis 入侵 https://cloud.tencent.com/developer/article/1440296 # 避免: -运行redis进程的用户不要用root -运行redis的用户不允许登录
redis使用场景
# 缓存系统:使用最广泛的就是缓存 # 计数器:网站访问量,转发量,评论数(文章转发,商品销量,单线程模型,不会出现并发问题) django--->并发操作数据库---》数据没有错乱--》mysql是一个服务---》兼容并发访问的--》处理了并发安全的问题---》不需要我们从程序端考虑并发安全问题 redis--》没有锁--》不存在并发安全问题--》redis数据读写是单线程的 # 消息队列:发布订阅,阻塞队列实现(简单的分布式,blpop:阻塞队列,生产者消费者) IPC 进程间通信 # 排行榜:有序集合(阅读排行,点赞排行,推荐(销量高的,推荐)) # 社交网络:很多特效跟社交网络匹配,粉丝数,关注数 # 实时系统:垃圾邮件处理系统,布隆过滤器
通用命令
####1-keys #打印出所有key keys * #打印出所有以he开头的key keys he* #打印出所有以he开头,第三个字母是h到l的范围 keys he[h-l] #三位长度,以he开头,?表示任意一位 keys he? #keys命令一般不在生产环境中使用,生产环境key很多,时间复杂度为o(n),用scan命令 ####2-dbsize 计算key的总数 dbsize #redis内置了计数器,插入删除值该计数器会更改,所以可以在生产环境使用,时间复杂度是o(1) ###3-exists key 时间复杂度o(1) #设置a set a b #查看a是否存在 exists a (integer) 1 #存在返回1 不存在返回0 ###4-del key 时间复杂度o(1) 删除成功返回1,key不存在返回0 ###5-expire key seconds 时间复杂度o(1) expire name 3 #3s 过期 ttl name #查看name还有多长时间过期 persist name #去掉name的过期时间 ###6-type key 时间复杂度o(1) type name #查看name类型,返回string ### 7 其他 info命令:内存,cpu,主从相关 client list 正在连接的会话 client kill ip:端口 dbsize 总共有多少个key flushall 清空所有 flushdb 只清空当前库 select 数字 选择某个库 总共16个库 monitor 记录操作日志,夯住
标签:name,centos,--,redis,---,key,###,客户端 From: https://www.cnblogs.com/zfq132/p/17868057.html