公司项目使用ehcache和redis,找了些资料,学习并记录下。

 

1.   SQL和NoSQL

SQL:关系型数据库,采用了关系模型来组织数据库,关系模型简单值就是一个二维表格模型。关系模式:是对关系的描述,数据看中通常叫表结构,表名(字段也叫属性)。(SQL Server、 Oracle、MySQL)

NoSQL:(Not only SQL)非关系数据库,满足大量的并发操作,采用key-value存储形式。每个属性唯一键值。(Redis、MongoDB)

优:对海量数据高并发读写;

对海量数据的高效率存储和访问;

分布式存储,对数据的扩展性和搞可用性。

SQL中对大量数据迁移和修改非常麻烦,因为有复杂的表结构;而NoSQL非常轻松,没有复杂的结构,全是键值对。

NoSQL是对SQL性能上的弥补,二者并不能取而代之,是相辅相成。

2.   Redis优势

Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行

3.   Redis安装

Redis官网只提供了linux版本的下载   官网:https://redis.io/

Windows版本只能在github上下载 https://github.com/MicrosoftArchive/redis/releases

Windows安装:下载对应版本后,解压到根目录下:(例:D:\Redis)

   打开CMD窗口到Redis目录下,输入redis-server.exe redis.windows.conf ,启动服务。

 

再次启动cmd窗口到Redis下,(原来启动的服务窗口不要关闭)输入redis-cli进入服务。

 

 

查看服务是否启动:输入命令 ping

                              若输出pong 则表是服务启动成功。

 

 4.   Redis数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

 

String类型

set写/get读

 

 

 

 

Hash 类型

插入多个值 hmset

读所有 hgetall

 

 

插入一个值:hset

读其中的值:hget

 

 

 

List类型

lpush 插入

Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

 

 

Set类型

String的无序集合.

插入:sadd

读取:smembers

 

 

Zset类型

有序集合,Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

 

插入zadd key score value

读取 zrange key start end

 

 5.   Redis命令

 

远程服务命令:redis-cli -h host -p port -a password

例:redis-cli -h 127.0.0.1 -p 6379 -a ”mypass”

 

登录操作

退出连接:quit

密码认证:auth pwd 

登录:./redis-cli -p 6379 -a 123 [-h xx.xx.xx.xx] [--raw] [-n 第几个数据库]

 

查询操作 

查看生存时间:ttl key

是否存在:exists key

随机返回key空间的一个key:randomkey

查看值的类:randomkey

查看连接是否存活:ping

打印内容:echo 

当前数据库中key的数目:dbsize

服务器的信息和统计:info 

查看服务器参数信息:config get *、config get key

查看key对应value值长度:strlen

获取子字符串:getrange key start end

 一次性获取多个key的值:mget key1 key2 ...

迭代遍历:scan 0 

迭代遍历查找:scan 0 match key 

迭代遍历查找,指定每次的个数:scan 0 match key count n

查看redis超长时间设置:config get slowlog-log-slower-than

查看redis超长时间日志记录个数:config get slowlog-max-len(如果日志队列已超出最大长度,则最早的记录会被从队列中清除)

获取超长记录日志:slowlog get n,

全部用slowlog get *

查看集群节点信息:cluster nodes 

查看key类型:type key 

 

增加操作 

增加/修改:set key value 

增加(存在返回0,不存在返回1,nx表示not exists):setnx key 增加/修改,同时设置生存时间(ex表示expire):setex key seconds value  

 

修改操作

设置生存时间:expire key seconds

重命名:rename key newkey 

持久化(移除给定key的过期时间):persist key 选择数据库(0-15):select index 

将当前数据库中的key转移到其它数据库中:move key index

 

posted on 2017-08-17 16:39  Acorn  阅读(110)  评论(0)    收藏  举报