标签:stc gre base 源文件 pen 远程 同时存在 clean 第一个
参考链接:
Http://redis.io/
http://www.redis.cn/
Remote Dictionary Server(远程字典服务器)
它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets),有序集合(sorted sets),并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。是一种[[NoSQL|非关系型数据库]]
性能
我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存,这样,后面的请求就去缓存中读取,请求使得能够迅速响应
并发
在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用的的Redis的做一个缓冲操作,让请求先访问到的Redis的的,而不是直接访问数据库。
$ wget http://download.redis.io/releases/redis-5.0.8.tar.gz
$ tar xzf redis-5.0.8.tar.gz
$ cd redis-5.0.8
$ make 执行redis的Makefile文件
如果出现如上所示错误,需要安装gcc(c语言编辑器)
$ yum install gcc
出现如上错误编译库出错, 将make 命令改为make MALLOC=libc
或是make distclean
$ src/redis-server 开启redis
docker pull redis:version
docker run -d redis 运行redis
Docker
安装后的目录, 运行Redis
最好也在该目录下前台启动Redis
进入安装目录redis-server
,默认端口6379
后台启动Redis
, 需要修改配置文件
复制源文件中的redis.conf
,到自定义目录修改redis 默认配置, 通过修改过的redis.conf
来启动Redis
开启客户端, redis-cli
测试
redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
查看redis是否运行
ps -ef|grep redis
关闭客户端
redis-cli shutdown
redis-cli -p 6379 shutdown 指定端口关闭
shutdown
退出关闭redis客户端,exit
退出redis(直接exit并不会退出redis)
注意!!!在使用shutdown,redis会将缓存中的数据贯入硬盘中,生成dump.rdb所以会还原数据
SELECT <dbid>
命令在连接上指定数据库idDbsize
查看当前数据库的key的数量Flushdb
清空当前库Flushall
通杀全部库String(字符串)
一个key对应一个value。redis的string
可以包含任何数据,比如jpg图片或者序列化的对象 。
Hash(散列)
hash是一个string类型的field
和value
的映射表,hash特别适合用于存储对象。类似Java里面的Map<String,Object>
Lists(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。它的底层实际是个链表
Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的
Zset(有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
参考链接:
http://www.redis.cn/commands.html
key(键)
keys *
获取所有的keyexsits key
move key db
expire key
ttl key
永久有效返回-1,不存在或过期返回-2type key
String(字符串)
set
,get
del
incr
自增1,incrby
增加
meset
,mget
getrange
, setrange
getset
List(列表)
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
lpush
(从左边压入元素),rpush
(从右边压入元素), lrange
(从左往右打印)
lrange 0 10
会打印11元素, 左闭右闭
lrange 0 -1
这里的-1表示倒数第一个元素,同理 -2 ...
lpop
(左边第一个元素),rpop
(右边第一个元素)
lindex
(从左边开始是第一个元素, 下标从0开始)
lrem
移除元素
Set(集合)
sadd
,smember
显示散列元素scard
srem
Hash(散列)
hset
,hget
hmset
,hmget
Zset(有序集合)
zadd
,zrange
vim
通过/来寻找文件中的内容
NETWORK
每隔多长时间检查一下连接是否还有效
GENERAL
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。
redis默认开启RDB,当redis断开连接后,数据同样存在, 但是如果flushdb 或是 flushall就不能恢复
持久化可以在指定的时间间隔内, 生成数据集的时间点快照。
设置快照时间,在客户端中通过save 命令可以达到立即保存的效果(adding a save directive)
RDB有可能会造成最后一次数据丢失,由于没有到达指定条件, 但是Redis Serve
关闭
设置redis 数据存放位置,即dump.rdb文件
默认生成在开启服务器的位置
MEMORY MANGEMENT
内存满了之后redis的策略,默认noeviction(永不过期),生产环境中不能使用noeviction
volatile-lru :用LRU算法移除key,只对设置了过期时间的键
allkeys-lru :用LRU算法移除key
volatile-random : 在过期的集合中随机移除key,只对设置了过期时间的键
allkeys-random : 移除随机的key
volatile-ttl: 移除那些TTL值最小的key,即那些将要过期的key
noeviction: 不进行移除 生产环境中不可采取
以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作(如果执行了flushall会记录flushall,所以还是空的)
AOF默认关闭,需要设置成yes开启
如果同时存在RDB和AOF会优先载入AOF
如果appendonly.aof文件出错,通过/usr/local/bin下的redis-check-aof修复
如果dump.rdb文件出错,通过/usr/local/bin下的redis-check-dump修复
每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
Master用于写,Slave用于读
slave会将Master中的内容复制过来
SLAEOF 主库IP 主库端口
查看主从关系
查看主从关系
info replication
一个Master两个Slave
下一个salve是上一个的slave,同样的slave还是不能写
变为一个单独master
SLAVE no one
反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转为主库
touch sentinel.conf
这里被监视的必须是主库
sentinel monitor 被监视的数据库名(可以自定义) 127.0.0.1 6379 1
最后的1表示主机宕机后,投票得1票即可成为主机
redis-sentinel /myRedis/sentinel.conf
宕机后重新连回来就会变成slave 以下是自动生成得sentinel.conf中的内容
标签:stc gre base 源文件 pen 远程 同时存在 clean 第一个
原文地址:https://www.cnblogs.com/kikochz/p/13358054.html