redis安装、配置及基本命令操作

1、redis特点:
(1)原子性:要么全部执行,要么全部不执行
(2)一致性:支持事务
(3)隔离性:单线程
(4)持久性:异步写入磁盘,避免雪崩效应

2、首先介绍一下redis3.0
特性:
(1)支持redis cluster
(2)支持新的”embedded string”
(3)LRU算法的改进
改进如下:
a.预设随机抽取5个样本,插入并排序至一个pool,移除最佳者,如此反复,直到内存用量小于maxmemory的设定
b.样本5比先前的3多
c.从局部最优趋向全局最优

3、redis组件:
(1)redis-server(服务端)
(2)redis-cli(客户端)
(3)redis-benchmark(压测工具)
(4)redis-check-dump & redis-check-aof(检查持久化文件是否完整,分别对应rdb和aof格式)

4、redis官方站点:www.redis.io
yum info redis #查看epel源是否含有redis的安装包
yum localinstall redis-3.0.2-1.el6.reml.x86_64.rpm #本地安装redis
rpm -ql redis #查看安装redis时安装了哪些文件
redis-server –help #查看帮助

5、redis配置文件(常用配置):
(1)tcp-backlog #指等待队列。当并发量大的时候,redis可能会忙不过来。这时候需要额外找一个地方,将新的请求缓存下来,这个位置就叫backlog
(2)redis.sock #服务端和客户端在同一台机器的时候,建议以sock文件的方式进行通信。好处是在内存当中直接交换,而不需要经过tcp/ip协议栈进行封装和解封装
(3)timeout 0 #0表示连接不会超时
(4)snapshotting配置:save 900 1 表示在900秒内有一个键发生变化,就做一次快照
(5)replication配置:主从
(6)daemonize yes #启动程序时,程序在后台运行

6、redis基本命令:
(1)通过redis-cli客户端连接redis之后,可以通过help命令查看帮助
help +tab键 #查看redis支持哪些类型
help @STRING #查看字符串帮助
help append #查看append命令的用法

(2)连接(connection)命令:
help @connection #查看连接相关命令
AUTH #验证
PING #测试服务器是否在线,在线的话会返回PONG
ECHO #显示命令,例如ECHO ‘hello’
QUIT #退出命令
SELECT #选择数据库

(3)服务器(server)命令:
help @server #查看服务器相关命令
CLIENT SETNAME connection-name #设定连接名
CLIENT GETNAME #查看连接名
CLIENT KILL ip:port kill #关闭client

(4)配置(config)命令:
INFO #查看redis信息,信息包含很多段,例如INFO memory可以查看内存段的信息
CONFIG RESETSTAT #重置INFO中所统计的数据
CONFIG SET #运行中修改,也就是在内存中修改,不会同步到硬盘中
CONFIG REWRITE #将配置写到硬盘当中
CONFIG GET (如dir) #查看配置

7、redis支持的数据结构:
(1)string #help @string,查看string支持的命令
string支持的命令:
set #help set,查看set帮助
get
append
strlen

(2)integer #help @integer,查看integer支持的命令
integer支持的命令:
incr #help incr,查看incr帮助
decr

(3)list [a,b,c,d] #help @list,查看list支持的命令
list支持的命令:
rpush #help rpush,查看rpush帮助
lpush
rpop
lpop
lindex
lset
llen

(4)set {a,b,c,d} #help @set,查看set支持的命令
set支持的命令:
sadd #help sadd,查看sadd帮助
sinter #求交集
sunion #求并集
spop #随机弹出,set无序
sismember #成员运算符

(5)sorted set {a:1,b:2,c:3} #help @sorten_set,查看sorten_set支持的命令
sorten_set支持的命令:
zadd #help zadd,查看zadd帮助
zrange
zcard
zrank

(6)hash {field1:”a”,field2:”b”},说白了就是映射,也称为关联数组 #help @hash,查看hash支持的命令
hash支持的命令:
hset #help hset,查看set帮助
hsetnx
hget
hkeys
hvals
hlen
hdel

(7)bitmaps #help @bitmaps,查看bitmaps支持的命令
(8)hyperloglog #help @hyperloglog,查看hyperloglog支持的命令

….

8、清空数据库:
FLUSHDB:清空当前库
FLUSHALL:清空所有库