redis

Posted ZJfor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis相关的知识,希望对你有一定的参考价值。

Redis

1.1    缓存策略

1.1.1 策略说明

使用缓存,主要目的为了降低服务器访问物理资源的访问频次.提高了用户获取数据的时间.

注意事项: 缓存中的数据必须和数据库中的数据一致.

1.1.2 缓存设计的思路

  1. 缓存中如何保存数据?  K-V结构,并且key不能重复.
  2. 使用C语言开发.
  3. 缓存的运行环境应该是内存中.
  4. 缓存数据的持久化问题.保证服务器断电之后数据依然存在.
  5. 如何控制内存数据的大小? LRU算法(时间维护) LFU(使用次数)
  6. 缓存设计时,应该考虑高可用/集群问题.

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

以上是关于redis的主要内容,如果未能解决你的问题,请参考以下文章

redis存储session配制方法

Redis实现分布式锁(设计模式应用实战)

Redis实现分布式锁(设计模式应用实战)

Redis缓存:java语言注释符号,附超全教程文档

spring boot 整合 redis

Redis 学习 —— 数据类型及操作