redis简介

redis是C语言编写的一个高性能的键值存储非关系型数据库

非关系型数据库的优点与缺点:

非关系型数据库也叫NoSQL(not only sql)

优点:可以轻松地处理海量数据

缺点:

1.没有主外键,则数据关系不能一目了然

2.没有强大的事务来支持,那么数据就相对来说不安全

3.不支持sql,不能进行复杂的查询

redis存储是键值对key-value(map)

redis数据类型

key:字符串

value:常见有五种数据类型(String、hash、list、set、sorted set(zset))

String相关的常用命令

   1.set命令(增加、修改):如果数据库中没有改key,则增加数据

     如果数据库中存在该key值,则修改原有key对应的value

    命令格式:set key value           set name admin

   2.get命令(查询):查询该key对应的value

      命令格式:get key    get  name

   3.del命令(删除):删除该key对应的value

      命令格式:del  key       del  name

   4.getset  key  value :获取该key原有值,然后赋新值

   5.incr  key:自增1。如果该值不存在,其初始值为0;在incr 之后其值不能转为整数数字,则该操作失败并返回相应的错误信息

   6.incrby  key  n:指定自赠数

   7.decr key:自减1,如果该key不存在,其初始值为0,在decr之后其值变为-1,如果value的值不能转为整数数字,则该操作失败并返回相应的错误信息;

   8.decrby  key n:指定自减数

   9.append key value:拼接字符串。如果该key存在,则在原值后追加其值;如果key不存在,则重新创建一个key/value

Hash类型相关的常用命令:

   1.赋值:hset  hashname key value:为指定的hashname设定key/value

   2.取值: hget hashname key:返回指定的hashname中的key的值

   3. 删除:hdel hashname key[key1...]:可以删除指定hashnam中的一个或多个值

   hdel  hashname:删除整个hash

Key相关的常用命令:

   1.keys *:查询所有key

   2.del key1  key2...:删除多个key

   3.exists key:判断该key是否存在,返回1存在,返回0不存在

   4.type key:获取该key对应的value的类型

   5.expire key:设置key的过期时间,单位秒。不设置默认不过期。

   6.ttl key:查看当前key的剩余时间,如果没有设置expire,则返回-1;如果已经过期则返回-2;

Redis集群的原理

    slot槽与数据分片存储(储存原理)

Redis集群中内置类16384【0-16383】个槽,redis会根据节点数量大致均等的将16384个槽映射到不同的节点。当需要在redis集群中放置一个key-value时,redis先对key使用crc16算法算出一个结果,然后把结果对16384取余。这样每个key都会对应一个编号在0-16384之间的槽。

 

你可能感兴趣的:(java)