Redis-HelloWorld与五大基本数据类型(笔记)

来源:互联网 发布:java 网络拓扑发现 编辑:程序博客网 时间:2024/05/21 19:23

Redis:Remote Dictionary Server(远程字典服务器),是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,也被称为数据结构服务器。

Redis有以下三个特点:
1.支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。
2.不仅仅支持简单的key/value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
3.支持数据的备份,即master-slave模式的数据备份

HelloWorld:
安装好Redis后
1.vim redis.conf
修改配置文件中demonize nodemonize yes(启用官方demo)
esc :wq (保存退出)
2.cd /usr/local/bin
指定修改后的配置文件以启动redis服务
3.redis-server /usr/redis/redis-3.0.1/redis.conf
4.redis-cli -p 6379 (启动客户端,默认端口6379)
127.0.0.1:6379> (输入行发生变化)
5.ping (返回PONG表示连接成功)
6.set k1 hello
get k1 (返回 “hello”)
shutdown (关闭连接)
exit (退出)

shutdown和quit命令:
1.如果持久化被打开的话, SHUTDOWN 命令会保证服务器正常关闭而不丢失任何数据。

2.另一方面,假如只是单纯地执行 SAVE 命令,然后再执行 QUIT 命令,则没有这一保证 —— 因为在执行 SAVE 之后、执行 QUIT 之前的这段时间中间,其他客户端可能正在和服务器进行通讯,这时如果执行 QUIT 就会造成数据丢失。

Tab可补全redis命令

redis启动后杂项知识
1.redis是单进程
单进程模型来处理客户端的请求,对读写等事件的响应是通过对epoll函数的包装来做到的,redis实际处理速度完全依靠主进程的执行效率。
Epoll是Linux内核为处理大批量文件描述符而做了改进的epoll,是linux下多路复用IO接口,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率

2.默认16个数据库,默认零号库
redis.conf文件中可修改databases 16为其他的数据库个数
redis中,select 4可切换当前数据库为4号库

3.dbsize
dbsize查看当前数据库有多少key

4.keys
keys * 罗列所有的key
keys k? 可以使用占位符“?”精确罗列key

5.flushdb
flushdb 清空当前数据看看
flushall 清空所有数据库

6.统一密码管理
16个库都是同样的密码,要么都OK要么一个也连接不上
redis默认关闭了密码

7.redis索引都是从零开始
8.redis默认端口6379

redis的五大基本数据类型
1.String 字符串
a.string是redis最基本的类型,可以理解成与memcache一模一样的模型,一个key对应一个value
b.string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象
c.一个redis中字符串value最多可以有512M

2.List 列表
a.redis list是简单的string列表,按照插入顺序排序,可以添加一个元素到列表的头部或尾部,它的底层实际是一个链表

3.Set 集合
a.redis set是string类型的无序集合,它是通过hashTable实现的,除去重复。

4.Zset 有序集合
a.zset和set一样是string类型的集合,且不允许重复。
b.不同的是每个元素会关联一个double类型的分数,redis通过分数来为集合中的成员从小到大的排序。
c.zset成员是唯一的,但是分数是可以重复的。

5.Hash 哈希 类似Map
a.redis hash是一个键值对集合,是一个string类型的fleld和value的映射表,hash特别适合用于存储对象。
类似于java里的Map<String,Object>

redis常见命令操作手册
http://redisdoc.com/