Redis
1.1 缓存策略
1.1.1 策略说明
使用缓存,主要目的为了降低服务器访问物理资源的访问频次.提高了用户获取数据的时间.
注意事项: 缓存中的数据必须和数据库中的数据一致.
1.1.2 缓存设计的思路
- 缓存中如何保存数据? K-V结构,并且key不能重复.
- 使用C语言开发.
- 缓存的运行环境应该是内存中.
- 缓存数据的持久化问题.保证服务器断电之后数据依然存在.
- 如何控制内存数据的大小? LRU算法(时间维护) LFU(使用次数)
- 缓存设计时,应该考虑高可用/集群问题.
1.2 Redis
1.2.1 什么是redis
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
1.2.2 Redis下载
网址: http://www.redis.cn/download.html
1.2.3 Redis安装
1.上传安装包
2.解压redis
[root@localhost src]# tar -xvf redis-5.0.4.tar.gz
3.修改文件名称
4.编译/安装redis
编译: make
安装: make install
启动redis
redis-server
1.2.4 修改redis配置文件
1.注释IP绑定
2.关闭保护模式
3.开启后台启动
1.2.5 Redis常规操作命令
1.启动redis
redis-server redis.conf
2.进入客户端
redis-cli -p 6379
退出客户端:
ctrl+c
exit
quit
3.关闭客户端
redis-cli -p 6379 shutdown
说明:如果操作的redis是默认的端口号6379 则命令可以简化
redis-cli redis-cli shutdown
1.2.6 操作redis客户端软件
说明:解压之后双击打开运行即可,如果出现异常则运行vcredist_x86.exe安装C++编译器即可.
连接Redis服务器.
1.1 Redis命令
1.1.1 String类型
命令 |
说明 |
案例 |
set |
添加key-value |
set username admin |
get |
根据key获取数据 |
get username |
strlen |
获取value的长度 |
strlen key |
exists |
判断key是否存在 |
exists name 返回1存在 0不存在 |
del |
删除redis中的key |
del key |
Keys |
用于查询符合条件的key |
keys * 查询redis中全部的key keys n?me 使用占位符获取数据 keys nam* 获取nam开头的数据 |
mset |
赋值多个key-value |
mset key1 value1 key2 value2 key3 value3 |
mget |
获取多个key的值 |
mget key1 key2 |
append |
对某个key的值进行追加 |
append key value |
type |
检查某个key的类型 |
type key |
select |
切换redis数据库 |
select 0-15 redis中共有16个数据库 |
flushdb |
清空单个数据库 |
flushdb |
flushall |
清空全部数据库 |
flushall |
incr |
自动加1 |
incr key |
decr |
自动减1 |
decr key |
incrby |
指定数值添加 |
incrby 10 |
decrby |
指定数值减 |
decrby 10 |
expire |
指定key的生效时间 单位秒 |
expire key 20 key20秒后失效 |
pexpire |
指定key的失效时间 单位毫秒 |
pexpire key 2000 key 2000毫秒后失效 |
ttl |
检查key的剩余存活时间 |
ttl key |
persist |
撤销key的失效时间 |
persist key |