redis基础

2018-06-13  本文已影响9人  xiang205012
redis安装

    下载redis源码包,安装gcc编译环境,make,make install prefic=/xxx/xxx(指定安装路径,不指定默认安装在/usr/local下)。安装后如下图:


redis安装.png

将解压包下的redis.conf复制到安装目录bin下。

redis启动服务端:./redis-server 服务端默认端口是6379,默认启动时是有图形的,如果不需要图形显示可以更改redis.conf中的daemonize=yes 。然后再使用带配置文件的启动方式启动:./redis-server redis.conf 。查看是否启动:ps aux|grep redis

redis服务端关闭:kill xxx(redis进程号),kill -9 xxx(-9表示强制杀死),使用客户端关闭:./redis-cli shutdown

redis启动客户端:./redis-cli 如果在同一台机器上就会自动连接到redis服务端,如果不在同一台机器上:./redis-cli -h 192.168.157.4 -p 6379(-h指定IP,-p指定端口)
客户端判断服务端是否正常:ping 如果返回PONG则正常

redis基本操作命令
SET key value [EX seconds] [PX milliseconds] [NX|XX]  #设置key为指定的字符串值。
#参数:
#EX seconds – 设置键key的过期时间,单位时秒
#PX milliseconds – 设置键key的过期时间,单位时毫秒
#NX – 只有键key不存在的时候才会设置key的值
#XX – 只有键key存在的时候才会设置key的值

set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string(它们的名称为key1,key2…)的value
setnx(key, value):如果不存在名称为key的string,则向库中添加string,名称为key,值为value
setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time
mset(key1, value1, key2, value2,…key N, value N):同时给多个string赋值,名称为key i的string赋值value i
msetnx(key1, value1, key2, value2,…key N, value N):如果所有名称为key i的string都不存在,则向库中添加string,名称key i赋值为value i
incr(key):名称为key的string增1操作
incrby(key, integer):名称为key的string增加integer
decr(key):名称为key的string减1操作
decrby(key, integer):名称为key的string减少integer
append(key, value):名称为key的string的值附加value
substr(key, start, end):返回名称为key的string的value的子串

redis设置key过期时间
redis内存和持久化

    内存和持久化之间没有什么关系,不会因为内存满了而进行持久化,他们各自有各自的机制

内存

    设置maxmemory参数,maxmemory是bytes字节类型,最好不要超过实际内存的四分之三,如果是4G的内存,最大可设成3G。
    如果内存满了,会报错:OOM command not allowed when used memory > ‘maxmemory’ 所以在设置内存时还要设置一个参数:maxmemory-policy用来控制,它默认是noeviction模式,一共有六种模式:
    volatile-lru -> 根据LRU算法生成的过期时间来删除。
    allkeys-lru -> 根据LRU算法删除任何key。
    volatile-random -> 根据过期设置来随机删除key。
    allkeys->random -> 无差别随机删。
    volatile-ttl -> 根据最近过期时间来删除(辅以TTL)
    noeviction -> 谁也不删,直接在写操作时返回错误。

持久化

持久化相关命令:
    save:将数据同步保存到磁盘
    bgsave:将数据异步保存到磁盘
    lastsave:返回上次成功将数据保存到磁盘的Unix时戳
    shundown:将数据同步保存到磁盘,然后关闭服务

redis持久化有两种方式:
    1、以.rdb文件持久化存储(默认)
    2、以.aof文件持久化存储,需要修改配置文件中的appendonly为yes

redis .rdb默认配置如下:
save 900 1
save 300 10
save 60 10000
这个配置意思是,如果900秒内有一个key发生变化就往磁盘保存一次,
如果300秒内有10个key发生变化就往磁盘保存一次,
如果60秒内有10000个key发生变化就往磁盘保存一次。

    总结:aof方式数据的丢失率远低于rdb,但对服务器性能消耗大。如果只用redis做缓存建议使用rdb方式,因为即使数据丢了,还可以去数据库找。

参考:
    Redis入门
    Redis五种数据类型使用场景(一)
    Redis五种数据类型使用场景(二)
    Redis五种数据类型使用场景实例
    Redis中的排序
    Redis面试10问
    Redis缓存雪崩

上一篇 下一篇

猜你喜欢

热点阅读