redis学习-基础入门
查询资料没有找到 redis 从入门到java中的应用,
也没有到框架 spring,springboot中的详细介绍,故自己整理,有错误的地方欢迎指出
一 : Redis 安装
0. Redis 安装
mac : brew cask install redis;
centos : apt-get install redis;
解压版安装 :
1. 将下载好的安装包放置到linux目录下
2. 解压 : tar -axvf redis-4.0.2.tar.gz
1. 进入 redis-4.0.2,
1. 输入 make;
2. 完成后输入make install;
3. sudo make install
3. 进入 src目录
1. cp redis-server /usr/local/bin/;
2. cp redis-cli /usr/local/bin/ 在任意目录启动
修改 redis.conf 配置文件
daemonize:如需要在后台运行,把该项的值改为yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
port:监听端口,默认为6379
timeout:设置客户端连接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:设置redis进行数据库镜像的频率
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其他数据库的从数据库
masterauth:当主数据库连接需要密码验证时,在这里设定
requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:限制同时连接的客户端数量
maxmemory:设置redis能够使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量
1. redis 是什么
基础 : redis 是一个 key-value存储系统
数据结构 : lists(列表),sets(集合),ordered sets(有序集合),hashes(哈希),string(字符串)
redis常被称作是一款数据结构服务器,对这些数据类型的操作是原子性,
例如 : 1.对字符串进行附加操作(append);2.递增哈希中的值;3.向列表中添加元素;4.计算集合的并集,交集,差集
2. redis 优点
性能极高 : redis能支持超过 100K+ 每秒的读写频率
丰富的数据类型
原子操作 : Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行
丰富的特性 : Redis还支持 publish/subscribe,通知,key过期等特性
3. redis 主要文件
服务端 : src/redis-server
客户端 : src/redis-cli
默认配置文件 : redis.conf
PS : 可以将可执行文件放置到$path换将目录下,便于以后执行程序时可以不输入完整的路径
cp redis-server /usr/local/bin/
cp resdi-cli /usr/local/bin/
启动redis : redis-server (src目录下) mac : brew service start redis
查看redis :
ps -ef|grep redis
netstat -antp|grep 6379 通过端口号检查Redis服务器状态
启动 Redis-cli : redis-cli
二 : Redis 数据
Redis keys 是采用二进制安全,我们可以使用任何的二进制序列作为重点
1. redis strings
set命令创建strings : set mykey somevalue ps:set命令将取代现有的任何已经存在的key
set mykey newval nx : 当mykey存在时不会保存(新建的意思)
set mykey newval xx : 当mykey不存在是不会保存(替换的意思)
get命令获取strings : get mykey
2. 加法器
set counter 100
incr counter : 101
incrby counter 20 : 121
3. 减法器
set counter 100
decr counter : 99
decr counter 20 : 79
4.Redis 可以使用 mset 和 mget 操作多个值,使用mget Redis返回一个数组
mset a 10 b 20 c 30
mget a b
5. Redis lists
Redis 列表是简单的字符串列表,按照插入顺序排序
rpush mylist 1
rpush mylist b
lpush mylist c
lrange mylist 0 -1 : lrange 利用了两个检索值,0表示list的开头第一个;-1标示list的倒数第一个
pop : 取出list元素,可以选择不同的方向进行取出元素,返回值为取出的元素
del : 删除key
6. Redis hashes
hashes是字符串字段和字符串值之间的映射,展现出对象的完美数据类型
hmset : 设置一个多余的hash表
hget : 获取指定的单域
hgetall : 获取指定key的所有信息
7. Redis 无序集合
redis集合是一个无序的字符串集合
sadd myset 1 2 3 : sadd产生一个无序集合,返回集合的元素个数
smembers : 查看集合 smembers myset
sismember : 用于查看集合是否存在,匹配项包括集合名和元素个数,匹配成功返回1,匹配失败返回0
sismember myset 3
sismember myset 30
sismember mys 3
8. Redis 有序集合
zadd与sadd类似,但是在元素之前多了一个参数,这个参数便是用于排序的,形成一个有序的集合
zadd hackes 1940 "alan kay"
zadd hacker 1999 "wodh"
zrange hackes : 查看正序集合
zrevrange hacker : 查看反序集合
zrange hacker 0 -1 withscores : 使用withscores参数返回记录值
三 : Redis 系统管理
1. 适合全体类型的常用命令 : (启动redis服务,redis-cli)
1. exists and del :
exists key : 判断一个key是否存在,存在返回1
del key1 key2 : 删除某个key或者一系列key(成功返回1)
2. type and keys
type key : 返回某个key元素的数据类型(none : 不存在,string : 字符串...list,set,zset,hash),key不存在返回空
keys key-pattern : 返回匹配的key的列表(keys foo*:查找foo开头的keys)
3. randomkey and clear
randomkey : 随机获取一个已经存在的key,如果当前数据为空,则返回空字符串
clear : 清除界面 不是清空所有的key
4. rename and renamenx
rename oldname newname : 改key的名字,新键如果存在则覆盖
renamenx oldname newname : 更改key的名字,如果newname存在,则更新失败
5. dbsize
dbsize : 返回当前数据库的key总数
2. Redis 时间相关的命令
1. 限定key生存时间 : 这是一个无视数据类型的命令,对于临时存储有用处,避免进行大量的del操作
expire : 设置某个key的过期时间(秒) : expire bruce 1000 : 设置bruce这个key1000s后系统自动删除
如果在还没过期的时候,对值进行了改变,那么那个值会清空
2. 查询key剩余生存时间
set 限时 : set key 100 ex 30
ttl : 查看某个key还有多长时间过期,返回s
3. 清除key
flushdb : 清空当前数据库中的所有键
flushall : 清空所有数据库中得所有键
3. Redis 设置相关命令 : Redis有其配置文件,可以通过client-command窗口查看更改
1. config get and config set
config get : 用来读取运行Redis服务器的配置参数
config set : 用于更改运行Redis服务器的配置参数
auth : 认证密码
config get requirepass : 查看密码
config set requirepass 123 : 设置密码
config get requirepass : 报错
auth 123;
config get requirepass;
4. 查询信息
info [section]: 查询Redis相关信息.INFO命令可以查询Redis几乎所有的信息
server : Redis serve的常规信息
clients : Client的链接选项
memory : 存储占用相关信息
persistence: RDB and AOF 相关信息
stats : 常规统计
replication : Master/slave 请求信息
cpu : CPU 占用信息统计
cluster : Redis集群信息
keyspace : 数据库信息统计
all : 返回所有信息
default : 返回常规设置信息
四. Redis 高级应用
1. 安全性 :
设置密码 :
config set requirepass "password"
配置redis.conf中设置requirepass属性
输入认证方式 :
redis-cli -a password : 登录时
auth password : 登陆后
2. 重启redis-server和redis-cli
重启 redis server : sudo service redis-server restart
进入 redis-cli 进行验证
五. 参考
1. [http://www.baid.com](http://www.baid.com "实验楼-redis基础")