首页 > 编程知识 正文

redis的实现原理,redis作用

时间:2023-05-03 22:31:01 阅读:189448 作者:4132

redis是密钥值存储系统。 与Memcached一样,它支持更多类型的value存储,包括字符串、列表、集、集、散列和yxdxy。 这些数据类型都支持推式/pop、add/remove、交集和差集以及更丰富的操作,所有这些操作都是原子的。 在此基础上,redis支持各种方式的排序。 与memcached一样,为了确保效率,所有数据都将缓存在内存中。 不同的是,redis通过定期将更新的数据写入磁盘或将修改操作写入添加的日志文件来实现主从同步。

Redis是一个高性能的key-value数据库。 redis的出现可以大大补偿诸如memcached之类的密钥/值存储器的不足,有时还可以很好地补充关系数据库。 提供Java、C/C、C#、PHP、JavaScript、Perl、Object-C、Python、Ruby、Erlang等客户端,使用方便。 [1]在[1]中

Redis支持主从同步。 数据可以从主服务同步到任何数量的从服务,并且从服务可以是与其它从服务相关联的主服务。 这样,Redis就可以执行单层树复制。 存储器可以无意中写入数据。 由于发布/订阅机制已完全实现,因此在从数据库的任何位置同步树时,都可以订阅通道并接收主服务器的完整消息发布记录。 有助于同步读取操作的可扩展性和数据冗馀性。

redis的官方网站地址非常容易记住,是redis.io

TYPE key —用于检索某个key的类型

KEYS pattern —匹配与模式匹配的所有key。 例如,KEYS *将列出所有key。 当然,复杂度是o(n )

RANDOMKEY -返回随机key

重命名oldkeynewkey-key也可以改名

列表操作,精华

rpushkeystring -将值添加到密钥列表的末尾

lpushkeystring -将值添加到key列表的开头

LLEN key —列表长度

LRANGE key start end —返回列表中某个范围的值。 这与mysql中的页面查询相同

LTRIM key start end —仅保留列表中某个范围的值

LINDEX key index —获取列表中特定索引号的值。 请注意o(n )的复杂性

LSET key index value —设置列表中位置的值

LPOP key

RPOP key —与上面的LPOP一样,它可以是从开头到结尾的指令,如堆栈或队列,用作消息队列

收藏操作

SADD key member —添加元素

SREM key member —删除元素

SCARD key —返回集合大小

SISMEMBER key member —确定集合中是否存在值

SINTER key1 key2 . keyN —获取多个集合的交集元素

SMEMBERS key —列出集合中的所有元素

redis

是主要用作缓存的文档(nosql )数据库

使用步骤:

从redis.io下载

单击redis-server.exe启动服务

通过redis-cli.exe访问

-------------操作string数据----------------------------------------------------- -

1添加/更改

set x 99

2删除

del x

3核对

get x

-------list数据------------------- list数据

增加1

lpush books aa bb

rpush books xx

2删除

lrem books 1 xx

3核对

lindex books 0

lrange books 0 -1

4长度

llen books

---------地图数据--- -

1添加/更改

hset person name aa

hmset person sex 1 lang java

2删除

hdel个人性爱

3核对

hget person name

hkeys person

hvals person

------------Jedis----

con=newJedis(127.0.0.1 ),6379 );

-----读写分离/冷热分离-----

redis和mysql执行不同的功能:

redis是读取的---用于查询

mysql用于写入---添加删除

使用步骤:

spring分离

@Configuration

@EnableCaching//打开缓存

public class RedisConfig {

将@Bean//方法返回的对象交给spring进行管理

33558 www.Sina.com/jedisconnectionfactorycreatefactory (

jedisconnectionfactoryfactory=http://www.Sina.com/jedisconnectionfactory (;

factory.set hostname (http://www.Sina.com/);

factory.setport(6379;

public factory;

}

@Bean

33558 www.Sina.com/redistemplatestring,stringcreatetemplate (jedisconnectionfactoryfactory ) {

RedisTemplateString,string template=http://www.Sina.com/redistemplatestring,string (;

template.setconnectionfactory;

new template;

}

//缓存管理器

@Bean

33558 www.Sina.com/rediscachemanagercreatecache (redistemplatestring,String template ) {

3358 www.Sina.com/rediscachemanager (template );

}

}

在Dao上配置

@ cache evict (value={ http://www.Sina.com/},allEntries="127.0.0.1"缓存重建

@cacheable(http://www.Sina.com/

//用这种方法返回的数据被redis缓存

ListBook findallbook (;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。