1.安装

tarxf redis-3.2.5.tar.gz

cd redis-3.2.5

make

mkdir -p /usr/local/redis/bin

src目录下这些文件作用如下

redis-server:Redis服务器的daemon启动程序

redis-cli:Redis命令行操作工具.你也可以用telnet根据其纯文本协议来操作

redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能.

cp   redis-benchmark  redis-check-aof     redis-cli    redis-server  /usr/local/redis/bin/

mkdir -p /usr/local/redis/conf

cp redis.conf   /usr/local/redis/conf

vim /usr/local/redis/etc/redis.conf

修改配置文件

daemonize no  改为daemonize yes  //是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件

bind 127.0.0.1        改为bind 0.0.0.0   //任意主机都可访问

其他的看需要修改

pkill  redis

做一个连接

ln  -s  /usr/local/redis/bin/*   /usr/local/bin

启动服务

redis-server   /usr/local/redis/conf/redis.conf

查看是否启动:

netstat -anpt |grep redis

tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      46390/redis-serve

redis启动成功后,在最后会出现如下警示信息:

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[3169] 02 Oct 10:17:30.690 * The server is now ready to accept connections on port 6379
警示大概意思为:
overcommit_memory被设置为了0.如果内存不够的情况下后台保存可能会失败;要解决这个问题,需要在/etc/sysctl.conf配置文件中将vm.overcommit_memory设置为1;或者通过命令“sysctl vm.overcommit_memory=1”来修改。

因此,我们做一下处理后在启动redis进程

[root@redis01 redis-2.8.9]# pkill redis
[root@redis01 redis-2.8.9]# sysctl vm.overcommit_memory=1
vm.overcommit_memory = 1
再启动 redis-server /usr/local/redis/conf/redis.conf &

经过处理后,再启动redis就没有任何警告了。

vm.overcommit_memory参数说明:
根据内核文档,该参数有三个值,分别是:
0:当用户空间请求更多的内存时,内核尝试估算出剩余可用的内存。
1:当设这个参数值为1时,内核允许超量使用内存直到用完为止,主要用于科学计算
2:当设这个参数值为2时,内核会使用一个绝不过量使用内存的算法,即系统整个内存地址空间不能超过swap+50%的RAM值,50%参数的设定是在overcommit_ratio中设定。

redis-cli shutdown 关闭redis进程

2.通过客户端操作redis数据库

下面我们来简单操作一下数据库。 插入数据:设置一个key-value对

[root@redis01 redis-2.8.9]# redis-cli   #通过客户端连接本地redis
127.0.0.1:6379> set id 001 #写入一条数据key(id),value(001)
OK
127.0.0.1:6379> get id #取值key(id)
"001" #显示key对应的值
127.0.0.1:6379> del id #删除key(id)
(integer) 1 #1表示成功
127.0.0.1:6379> exists id #验证key是否存在
(integer) 0 #0表示不存在
127.0.0.1:6379> get id #取key的值
(nil) #报错信息
127.0.0.1:6379> set user001 benet
OK
127.0.0.1:6379> set user002 yunjisuan
OK
127.0.0.1:6379> set user003 yun123
OK
127.0.0.1:6379> get user001
"benet"
127.0.0.1:6379> get user002
"yunjisuan"
127.0.0.1:6379> keys * #查看redis里所有的key
1) "user003"
2) "user002"
3) "user001" redis-cli客户端的远程连接及非交互式操作数据库
[root@redis01 redis-2.8.9]# redis-cli -h 10.0.0.135 -p 6379
10.0.0.135:6379> quit
[root@redis01 redis-2.8.9]# redis-cli -h 10.0.0.135 -p 6379 set aaa 111
OK
[root@redis01 redis-2.8.9]# redis-cli -h 10.0.0.135 -p 6379 get aaa
"111"

也可通过telnet连接redis数据库

telnet 10.0.0.135 6379

3.redis安全

(1)为redis客户端设置外部链接密码

警告: 因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在1秒内进行上万次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。

[root@redis01 redis-2.8.9]# grep -n requirepass /usr/local/redis/conf/redis.conf    #修改redis配置文件,添加密码
198:# If the master is password protected (using the "requirepass" configuration
339:# requirepass foobared
[root@redis01 redis-2.8.9]# sed -i '339 s@# requirepass foobared@requirepass yunjisuan@g' #密码是yunjisuan /usr/local/redis/conf/redis.conf
[root@redis01 redis-2.8.9]# grep -n requirepass /usr/local/redis/conf/redis.conf
198:# If the master is password protected (using the "requirepass" configuration
339:requirepass yunjisuan

重启redis后测试

#重启redis进程
[root@redis01 redis-2.8.9]# ps -ef | grep redis | grep -v grep
root 3442 1288 0 13:40 pts/0 00:00:17 redis-server *:6379
[root@redis01 redis-2.8.9]# redis-cli shutdown
[3442] 02 Oct 18:17:03.370 # User requested shutdown...
[3442] 02 Oct 18:17:03.370 * Saving the final RDB snapshot before exiting.
[3442] 02 Oct 18:17:03.380 * DB saved on disk
[3442] 02 Oct 18:17:03.380 # Redis is now ready to exit, bye bye...
[1]+ Done redis-server /usr/local/redis/conf/redis.conf
[root@redis01 redis-2.8.9]# ps -ef | grep redis | grep -v grep
[root@redis01 redis-2.8.9]# redis-server /usr/local/redis/conf/redis.conf &
[root@redis01 redis-2.8.9]# ps -ef | grep redis | grep -v grep
root 3843 1288 0 18:18 pts/0 00:00:00 redis-server *:6379 #测试验证效果
#第一种登陆验证方式
[root@redis01 redis-2.8.9]# redis-cli #登陆本地redis
127.0.0.1:6379> set name 3333 #存数据
(error) NOAUTH Authentication required. #没有验证权限
127.0.0.1:6379> keys * #查看所有key
(error) NOAUTH Authentication required. #没有验证权限
127.0.0.1:6379> auth yunjisuan #提交验证密码
OK #验证通过
127.0.0.1:6379> keys * #查看所有keys
1) "user003"
2) "ab"
3) "user002"
4) "aaa"
5) "user001" #第二种登录验证方式
[root@redis01 redis-2.8.9]# redis-cli -a yunjisuan #登陆时提交密码
127.0.0.1:6379> keys *
1) "user003"
2) "ab"
3) "user002"
4) "aaa"
5) "user001"

特别提示: redis没有用户的概念,只能设置连接密码,并且redis的连接速度非常快。因此密码需要设置的很复杂才安全。

最新文章

  1. c# .net获取文件夹下的所有文件(多层递归),并获取区间数据(Jsion,xml等数据)写出到处理文件,学习分享~
  2. 激光打印机的Color/paper, Xerography介绍
  3. nginx基本配置和参数说明
  4. 大数据——Hadoop集群坏境CentOS安装
  5. 【Python爬虫】入门知识
  6. bjfu1299 stl使用
  7. 渗透测试实例Windows XP SP2
  8. Sass和Compass设计师指南
  9. 高难度(3)RenderScript
  10. Leetcode:LRUCache四个版本实现
  11. Mysql大量插入数据时SQL语句的优化
  12. 连接HTTP服务器
  13. jquery 3.4.0
  14. MyBatis简单使用和入门理解
  15. Convert the AScii to SAC file
  16. python3使用ip地址代理
  17. ASP.NET Web API 框架研究 Web Host模式路由及将请求转出到消息处理管道
  18. Beta冲刺——day3
  19. SQL Server 调优系列基础篇 - 性能调优介绍
  20. ballerina 学习二十六 项目docker 部署&& 运行(二)

热门文章

  1. pl/sql中的一种链接数据库方式
  2. Android(java)学习笔记28:泛型概述和基本使用
  3. Scrapy研究探索(三)——Scrapy核心架构与代码执行分析
  4. 【[Violet]樱花】
  5. 【转】android:windowSoftInputMode属性详解
  6. 【转】CommonJS,AMD,CMD区别
  7. POJ 2195 Going Home 【二分图最小权值匹配】
  8. Gulp 方法
  9. [转]Qt中ui文件的使用
  10. Linux 安装ngnix