redis 学习笔记(1)-编译、启动、停止

一、下载、编译

redis是以源码方式发行的,先下载源码,然后在linux下编译

1.1 http://www.redis.io/download 先到这里下载Stable稳定版,目前最新版本是2.8.17

1.2 上传到linux,然后运行以下命令解压

tar xzf redis-2.8.17.tar.gz

1.3 编译

cd redis-2.8.17
make

注:make命令需要linux上安装gcc,若机器上未安装gcc,redhat环境下,如果能联网,可键入

yum -y install gcc 安装

(若之前安装了其它版本的gcc,导致make失败,可尝试先yum -y remove gcc删除旧版本)

另:编译中若提示"Newer version of jemalloc required"之类的错误,在make后加参数 MALLOC=libc,即 make MALLOC=libc

 

二、修改redis端口,调整运行方式为后台进程daemonize方式运行

默认端口为6379,如果linux上该端口被墙了,可以尝试换一个端口

2.1 参考下面的命令(将端口改成7030)

cd $REDIS_HOME (进入redis主目录)

mkdir conf (创建conf目录,用于存放配置)

cd conf (进入conf目录)

cp ../redis.conf redis7030.conf (将上级目录下的redis.conf复制到当前目录,并重命名为redis7030.conf)

vi redis7030.conf (用vi编辑该配置文件)

找到:

daemonize no,将no改成yes

port 7030,将6379改成7030

然后保存退出

 

三、启动redis

cd $REDIS_HOME/src

./redis-server ../conf/redis7030.conf

 

四、使用redis-cli客户端验证

仍然保持在“redis_home主目录\src"下,输入

./redis-cli -p 7030 set test 'Hello Redis'

即:指定端口7030,连接到本机redis,同时设置一个key为test,value为'Hello Redis'的缓存项

(注:如果连接远程的redis服务器,可以用类似./redis-cli -h 192.168.1.190 -p 8030 get a)

读取缓存

./redis-cli -p 7030 get test 测试获取test缓存项

删除缓存

./redis-cli -p 7030 del test

小技巧:redis没有提供批量删除的方法,可以用下面的技巧批量删除 ./redis-cli -p 7030  KEYS "*" | xargs ./redis-cli -p 7030 DEL

此外,还可以通过

./redis-benchmark -p 7030 进行性能测试

 

五、停止redis

./redis-cli -p 7030 shutdown

为了以后运维更轻松,可以利用alias做几个别名,

vi ~/.bashrc

alias redis="cd /opt/app/redis/redis-2.8.17/src"
alias startRedis="/opt/app/redis/redis-2.8.17/src/redis-server /opt/app/redis/redis-2.8.17/conf/redis7030.conf"
alias stopRedis="/opt/app/redis/redis-2.8.17/src/redis-cli -p 7030 shutdown"

具体路径,大家根据实际情况调整,保存退出,重新连接到linux终端

redis 即可直接进入redis根目录

startRedis 即启动redis

stopRedis 即停止redis

 

六、配置redis仅做为缓存使用

如果不打算使用事务、管线等一堆复杂功能,仅仅把redis当成cache server使用,可以在配置文件中,找到maxmemory、maxmemory-policy这二项,参考下面修改

maxmemory 2048mb
maxmemory-policy allkeys-lru

 即:最大允许使用2G内存,所有key全都按LRU(近期最少使用)算法淘汰,这种情况下,不用设置过期时间,只要内存使用达到上限,不怎么使用的key自然被干掉。

附:redis.conf的微优化配置(从百度百科上抄过来的)

 1 daemonize yes
 2 
 3 pidfile /opt/app/redis/redis-2.8.17/var/redis.pid
 4 
 5 port 7030
 6 
 7 timeout 300
 8 
 9 loglevel debug
10 
11 logfile /opt/app/redis/redis-2.8.17/var/redis.log
12 
13 databases 16
14 
15 save 9001
16 
17 save 30010
18 
19 save 6010000
20 
21 rdbcompression yes
22 
23 dbfilename dump.rdb
24 
25 dir /opt/app/redis/redis-2.8.17/var/
26 
27 appendonly no
28 
29 appendfsync always
30 
31 # slaveof <masterip> <masterport>
32 # masterauth <master-password>
33 
34 slave-serve-stale-data yes
35 
36 slave-read-only yes
37 
38 maxmemory 1gb
39 
40 maxmemory-policy allkeys-lru

其中:

端口、38行-最大内存使用量、以及var目录路径,大家根据实际情况自行调整

 

最后在动手写代码前,先强烈建议阅读下 An introduction to Redis data types and abstractions (官网的入门文档),并认真把文中提到的示例通过redis-cli 运行一次

转载于:https://www.cnblogs.com/yjmyzz/p/4105056.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序 调用地图接口,实现定位

1. demo01.wxml <!-- 定位 --> <view><button type"default" bindtap"get_location">get position</button></view><view><map id"my_map" latitude"{{latitude}}" longitude"{{longitu…

【ASP.NET】获取网站目录的方法

获取网站物理路径: HttpRuntime.AppDomainAppPath获取网站虚拟路径: HttpRuntime.AppDomainAppVirtualPath转载于:https://www.cnblogs.com/chenguoxingblog/p/4107771.html

如何使用div优雅的布局

flex布局方式1&#xff0c;float飘起来~方式2&#xff0c;使用flex&#xff0c;将多个div合并到一行就是跨行和跨列嘛…如果表格做就easy…但是, div是块级标签&#xff0c;每个div会独占一行…方式1&#xff0c;float飘起来~ 下面的两个div会到一行… <div> <div s…

多行文本溢出问题

总结了一些网上看到的&#xff0c;结合自己的思考&#xff0c;举例如下&#xff1a; http://jssl915.github.io/overflow.html 转载于:https://www.cnblogs.com/lj915/p/4112840.html

spring-cloud学习demo,git地址

https://github.com/sevenyoungairye/spring-cloud2020 解决分布式&#xff0c;微服务的各种问题。 不停更新&#xff0c;欢迎三连。

centos7 frp内网穿透

git下载地址 中文文档参考 这里需要nginx 配置https证书, frp服务端&#xff0c;frp客户端, 阿里centos7, 子级域名。client -->(https) nginx --> frp server(7000) in linux:8888 --> frp client(7000) in windows --> current client:8080 client --> ge…

BZOJ 2324: [ZJOI2011]营救皮卡丘(带上下限的最小费用最大流)

这道题么 还是有些恶心的&#xff0c;第一次写带上下界的网络流&#xff0c;整个人都萌萌哒~~~首先先预处理得最短路后直接用费用流做就行了。第一次写&#xff0c;还是挺好写的 CODE&#xff1a;#include<cstdio>#include<iostream>#include<algorithm>#inc…

微服务基本环境的搭建

order-paymentspring-cloud 环境的搭建订单模块 服务消费者支付模块 服务提供者payment, CommonOrder公共抽取这里使用maven聚合的方式构建微服务。 只给出pom demo 地址 spring-cloud 环境的搭建 父依赖 <?xml version"1.0" encoding"UTF-8"?>…

EF三层

一. 主要内容 1. 数据层和业务层父类。&#xff08;泛型约束&#xff09; 2. 模板方法模式&#xff08;业务层子类方法通过业务层父类调用数据层子类的方法&#xff09;。 二. 源代码 http://files.cnblogs.com/HuoAA/EF%E4%B8%89%E5%B1%82.rar转载于:https://www.cnblogs.com/…

服务注册中心 eureka 搭建

服务注册中心&#xff0c;netfix公司的&#xff0c;出道即巅峰&#xff0c;可惜没人维护了。 1.x 可用&#xff0c;2.x 使用后果自负。本文讲eureka服务中心的搭建&#xff0c;分为单机版本和eureka集群版本。以及服务消费者&#xff0c;服务提供者如何入驻注册中心。 eurekaeu…

虚拟机 不能联网

当在vmware 中系统以 Nat 方式连接网络时&#xff0c;出现 &#xff1a; ping baidu.com ping unknown host baidu.com 检查一下以下几个地方,确保NAT上网的几个服务已经启动.具体操作如下: 开始---设置--控制面板---管理工具---服务 VMware DHCP Service VMware NA…

jwt, json web token

jwt1. JWT什么是JWTJWT能做什么为什么用JWTJWT结构JWT问题和趋势2. jwt加解密工具&#xff0c;使用pom工具类测试1. JWT 什么是JWT 官方定义 json web token是一个开放标准&#xff08;rfc7519&#xff09;&#xff0c;它定义了一种紧凑的&#xff0c;自包含的方式&#xff0c;…

kali 更新源

个人收集的kali 更新源: 修改更新源&#xff1a;vim /etc/apt/sources.list更新源列表包&#xff1a;#apt-get update更新系统软件: #apt-get upgrade#官方源 deb http://http.kali.org/kali kali main non-free contrib deb-src http://http.kali.org/kali kali main non-fre…

微信小程序结合Java后端实现登录注册

微信小程序登录微信用户&#xff0c;授权信息&#xff0c;相关实体类微信用户表实体类获取微信的token常量抽取httpClient工具&#xff0c;用于发送请求获取tokennbplus pom工具类请求微信后台&#xff0c;获取openid&#xff0c;返回的是json登录或者注册完整业务实现&#xf…

[转]js实现简单的双向数据绑定

转自&#xff1a;http://www.see-source.com/blog/300000038/444 双向数据绑定指的就是&#xff0c;绑定对象属性的改变到用户界面的变化的能力&#xff0c;反之亦然。换种说法&#xff0c;如果我们有一个user对象和一个name属性&#xff0c;一旦我们赋了一个新值给user.name,在…

zookeeper作为服务注册中心

zk客户端消费者pom, 排除依赖yaml 入驻zk主启动配置restTemplate ribbon负载均衡调用服务提供者调用实现服务提供者pomyamlmainboot提供被调用的服务linux命令查看zk的服务&#xff0c;结点信息客户端消费者 pom, 排除依赖 <?xml version"1.0" encoding"…

写一个简单控制台启动的mcv服务

1.在项目工程里添加wcf服务&#xff0c;工程中会出现两个文件IService.cs和Service.cs. IService.cs中定义服务中的接口&#xff0c;接口必须加特性[OperationContract]才能在客户端添加服务后&#xff0c;实例化对象中发现该函数。 namespace ConsoleApplication1 { [ServiceC…