redis数据库

edis的好处

速度快,因为数据保存在内存中
支持丰富的数据类型,支持string,list,set,sorted set,hash
支持事物,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
丰富的特性:可用于缓存,消息,按key设置过期时间,过期后自动删除
mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

介绍:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略

voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐):禁止驱逐数据

redis最适合的场景

会话缓存(Session Cache)
全页缓存(FPC)
队列
排行榜/计数器
发布/订阅

安装

步骤一:搭建redis服务器

1)安装源码redis软件
[root@redis1 redis]# yum -y install gcc
[root@redis1 redis]# tar -zxf redis-4.0.8.tar.gz
[root@redis1 redis]# cd redis-4.0.8/
[root@redis1 redis-4.0.8]# ls
00-RELEASENOTES CONTRIBUTING deps Makefile README.md runtest runtest-sentinel src utils
BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster sentinel.conf tests
[root@redis1 redis-4.0.8]# make
[root@redis1 redis-4.0.8]# make install
[root@redis1 redis-4.0.8]# cd utils/
[root@redis1 utils]# ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port : 6379 //端口号
Config file : /etc/redis/6379.conf //配置文件目录
Log file : /var/log/redis_6379.log //日志目录
Data dir : /var/lib/redis/6379 //数据库目录
Executable : /usr/local/bin/redis-server //启动程序的目录
Cli Executable : /usr/local/bin/redis-cli //命令行的连接工具
Is this ok? Then press ENTER to go on or Ctrl-C to abort. //回车完成配置
Copied /tmp/6379.conf => /etc/init.d/redis_6379 //服务启动脚本
Installing service…
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server… //提示服务已经启动
Installation successful! //提示安装成功
2)查看服务状态
[root@redis1 utils]# /etc/init.d/redis_6379 status
Redis is running (15203)
3)查看监听的端口
[root@redis1 utils]# netstat -antupl |grep :6379 //查看端口
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 15203/redis-server
[root@redis1 utils]# ps -C redis-server //查看进程
PID TTY TIME CMD
15203 ? 00:00:00 redis-server
4)停止服务
[root@redis1 utils]# /etc/init.d/redis_6379 stop
Stopping …
Waiting for Redis to shutdown …
Redis stopped
5)连接redis
[root@redis1 utils]# /etc/init.d/redis_6379 start
Starting Redis server…
[root@redis1 utils]# redis-cli //默认连接127.0.0.1地址的 6379端口
127.0.0.1:6379> ping
PONG //PONG说明服务正常
6)存储变量school,值为tarena,查看变量school的值
常用指令操作:
set keyname keyvalue //存储
get keyname //获取
127.0.0.1:6379> set school tarena
OK
127.0.0.1:6379> get school
“tarena”
127.0.0.1:6379>
2 案例2:常用命令
2.1 问题

练习如下命令的使用:
set mset get mget keys type
exists ttl expire move 、select
del flushdb flushall save shutdown
2.2 步骤

实现此案例需要按照如下步骤进行。
步骤一:命令set 、 mset 、 get 、 mget

具体操作如下
192.168.4.50:6350> set name bob
OK
192.168.4.50:6350>
192.168.4.50:6350> mset age 19 sex boy
OK
192.168.4.50:6350>
192.168.4.50:6350> get name
“bob”
192.168.4.50:6350>
192.168.4.50:6350> mget age sex

  1. “19”
  2. “boy”
    192.168.4.50:6350>
    192.168.4.50:6350>
    步骤二:命令keys 、 type 、 exists 、 del

具体操作如下
192.168.4.50:6350> keys *

  1. “sex”
  2. “age”
  3. “name”
    192.168.4.50:6350>
    192.168.4.50:6350> keys ???
  4. “sex”
  5. “age”
    192.168.4.50:6350> keys a*
  6. “age”
    192.168.4.50:6350>
    192.168.4.50:6350> type age //使用set命令存储的变量都是字符类型
    string
    192.168.4.50:6350>
    192.168.4.50:6350> del age
    (integer) 1
    192.168.4.50:6350>
    192.168.4.50:6350> exists age //变量不存储返回值0
    (integer) 0
    192.168.4.50:6350>
    192.168.4.50:6350> exists sex //变量存在 返回值1
    (integer) 1
    192.168.4.50:6350>
    步骤三:命令ttl 、 expire 、 move 、 flushdb 、flushall 、save、shutdown

、select

具体操作如下
192.168.4.50:6350> keys *

  1. “sex”
  2. “name”
    192.168.4.50:6350> ttl sex //返回值-1 表示变量永不过期
    (integer) -1
    192.168.4.50:6350>
    192.168.4.50:6350> expire sex 20 //设置变量过期时间为 20 秒
    (integer) 1
    192.168.4.50:6350>
    192.168.4.50:6350> ttl sex //还剩14秒过期
    (integer) 14
    192.168.4.50:6350>
    192.168.4.50:6350> ttl sex //返回值-2 表示已经过期
    (integer) -2
    192.168.4.50:6350> exists sex //变量已经不存在
    (integer) 0
    192.168.4.50:6350>
    192.168.4.50:6350> move name 1 //把变量name移动到1号库里
    (integer) 1
    192.168.4.50:6350>
    192.168.4.50:6350> select 1 //切换到1号库
    OK
    192.168.4.50:6350[1]> keys * //查看
  3. “name”
    192.168.4.50:6350[1]> select 0 //切换到0号库
    OK
    192.168.4.50:6350> keys * //查看
    (empty list or set)
    192.168.4.50:6350>
    192.168.4.50:6350> select 1 //切换到1号库
    OK
    192.168.4.50:6350[1]>
    192.168.4.50:6350[1]> keys *
  4. “name”
    192.168.4.50:6350[1]>
    192.168.4.50:6350[1]> flushdb
    OK
    192.168.4.50:6350[1]>
    192.168.4.50:6350[1]> keys *
    (empty list or set)
    192.168.4.50:6350[1]>
    192.168.4.50:6350[1]> flushall
    OK
    192.168.4.50:6350[1]>
    192.168.4.50:6350[1]> save
    OK
    192.168.4.50:6350[1]>
    192.168.4.50:6350[1]> shutdown
    not connected> //提示连接断开
    not connected> exit //退出登录
    [root@host50 ~]#
    [root@host50 ~]# netstat -utnlp | grep redis-server //没有进程信息
    [root@host50 ~]#
    [root@host50 ~]# /etc/init.d/redis_6379 start //启动服务
    Starting Redis server…
    [root@host50 ~]#
    [root@host50 ~]# netstat -utnlp | grep redis-server //查看进程信息
    tcp 0 0 192.168.4.50:6350 0.0.0.0:* LISTEN 11475/redis-server
    [root@host50 ~]#

3:修改Redis服务运行参数

3.1 问题
对Redis服务器192.168.4.50做如下配置:
端口号 6350
IP地址 192.168.4.50
连接密码 123456
测试配置
实现此案例需要按照如下步骤进行。
步骤一:修改主配置文件

1)修改配置文件
[root@host50 utils]# cp /etc/redis/6379.conf /root/6379.conf
//可以先备份一份,防止修改错误没法还原
[root@host50 utils]# /etc/init.d/redis_6379 stop
[root@host50 utils]# vim /etc/redis/6379.conf

bind 192.168.4.50 //设置服务使用的ip
port 6350 //更改端口号
requirepass 123456 //设置密码
:wq
2)修改启动脚本
[root@host50 ~]# vim +43 /etc/init.d/redis_6379
$CLIEXEC -h 192.168.4.50 -p 6350 -a 123456 shutdown
:wq
3)启动服务
[root@host50 ~]# /etc/init.d/redis_6379 start
Starting Redis server…
[root@host50 ~]#
[root@host50 ~]# netstat -utnlp | grep redis-server
tcp 0 0 192.168.4.50:6350 0.0.0.0:* LISTEN 11523/redis-server
[root@host50 ~]#
4)测试配置
访问服务存取数据
[root@host50 ~]# redis-cli -h 192.168.4.50 -p 6350 -a 123456 //访问服务
192.168.4.50:6350> ping
PONG
192.168.4.50:6350> keys *
(empty list or set)
192.168.4.50:6350>
192.168.4.50:6350> set x 99
OK
192.168.4.50:6350>
192.168.4.50:6350> exit
[root@host50 ~]#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值