Redis基础知识总结
2018-04-01 17:07
453 查看
技术文档:
http://www.runoob.com/redis/redis-tutorial.html
Jedis介绍
Jedis是Redis 官方首选的java客户端开发包http://github.com/xetorthio/jedisJedis-jar url下载地址: https://mvnrepository.com/artifact/redis.clients/jedis #Redis 的数据结构 · 1· 2五种数据类型:字符串(String) , 哈希(hash) ,字符串列表(list) , 字符串集合(set),有序字符串集合(sorted set)常用的是字符串和哈希
Key的定义注意点:
不要过长不要过短统一的命名规范存储String
常用命令:赋值: set company imooc ,取值就可以通过 get company 获得 imoocgetset命令: getset company baidu 结果:imooc 然后 get company 结果: baidu .getset key value 就是先获得key后更改value删除 del key ,比如: 先设置 key 和value set person jack ,del person 返回数字1,如果再去获得get person 结果: nil 代表不存在扩展命令取值数值增减递增 incr num 默认就是0,而get num 的结果就是 1 。同理 decr num2 默认也是0 而get num 的结果即使 -1 。incrby num 5 就是通过 num+5的结果。一般num默认是0,现在应该就是5同理decrby num2 5 结果就是-5存储Hash
String key和value的map容器每一个Hash可以存储4294967295个键值对hset key field value 命令:例子:赋值hset myhash username jackhset myhash age 18其中 myhash 就是key 而username 和age都是字段名称,而后面的值局势字段里的值。这和map的集合有一点区别hset myhash2 username jack age 18删除: hdel myhash2 结果就是: empty list or set如果在接着去删除 hdel myhash2 username 结果 0
删除没有的字段就返回0
存储list:
ArrayList使用数组方式LinkedList使用双向链接方式双向链表中增加数据双向链表中删除数据存储list常用命令:
两端添加 查看列表 两端弹出 获取列表元素个数 扩展命令命令: lpush key value[value]lpush mylist3 a b c 1 2 3命令: lrange key start stop
取出: lrange mylist3 0 5 结果就是 3 2 1 c b a 这和java 中list集合有一点区别
当然也可以这样取值 lrange mylist3 0 -1 ,结果和上面还是一样的。0代表第一个元素,而-1 代表最后一个元素命令:
lpop key 移出并获取列表的第一个元素llen key 获取列表长度rpop key 移出并获取列表的最后一个元素lpush key value 插入到已存在列表头部,rpush key value 插入到已存在列表尾部lpushx key value 同理也是插入到列表头部rpushx key value 同理也是插入到列表尾部lpushx mylist3 x ,通过查看 lrange mylist 0 -1 得 x 3 2 1 a b c
存储set
和list类型不同的是,set集合中不允许出现重复的元素set可包含的最大元素数量是4294967295存储set常用命令
添加/删除元素 获得集合中的元素 扩展命令集合中的差集运算 集合中的交集运算 集合中并集运算元素添加:sadd myset a b c 结果为 3sadd myset a 结果为0sadd myset 1 2 3删除元素 :srem myset 1 2 结果就是: a b 3 c判断元素是否存在sismember myset a 存在返回 1 不存在就返回0差集运算: sdiff key[key]交集运算 sinner key [key ]显示集合中所有的元素
c9b2
SMEMBERS key显示集合中成员数量 SCARD key返回集合中的一个或多个成员 srandmember key[count]
存储Set使用场景
跟踪一些唯一性数据用于维护数据对象之间的关联关系Redis的Keys的通过操作
keys * 查看所有的keydel my1 my2 my3 删除某些keyexists my1 查看key是否存在 返回0是存在,1不存在rename company newcompany 重命名为newcompanyexpire key 1000 为key设置过期时间TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
Redis特性
相关特性多数据库redis事务多数据:默认是0号数据库select 0 ,当然也可以移动数据库 move myset 1 就是将0中的myset移动到mysetMULTI
标记一个事务块的开始。EXEC
执行所有事务块内的命令。DISCARD
取消事务,放弃执行事务块内的所有命令。
1、五大数据类型
String 字符串list 字符串列表
set 字符串集合
hash 哈希
sorted set 有序字符串集合
2、Redis 事物
与关系型数据库不同,一个事物执行失败,他后边的事物继续执行,不会被打断!3、Redis多数据库
4、Redis持久化
Redis所有的数据都存在内存中,从内存当中同步到硬盘上,这个过程叫做持久化过程。方式:
RDB持久化:
指定时间间隔,然后写入硬盘中
AOF:
以日志形式,记录服务器每一个操作;Redis服务器启动时读取该文件来重新构建数据库,保证数据完整性。
配置可以禁用 持久化功能;
也可以同时使用两种方式。
5、RDB持久化
优势:只有一个文件,时间间隔的数据,可以归档为一个文件,方便压缩转移(就一个文件)
劣势:
如果宕机(数据还没向硬盘中写,数据就会丢失),数据损失比较大,因为它是没一个时间段进行持久化操作的。也就是积攒的数据比较多,一旦懵逼,就彻底懵逼了
6、AOF持久化
优势:1. 带来更高的数据安全性。有三种同步策略。每秒同步、每修改同步、不同步。
2.AOF 文件是一个只进行追加操作的日志文件,因此在写入过程中即使出现宕机现象也不影响之前已经存在的内容。
3.如果日志过大,redis可以启动重写机制。在重写过程中产生的对数据库操作记录会保存在一个新文件中,等到重写完成后再追加到现有的文件中。
4.AOF 文件有序地保存了对数据库执行的所有写入操作
劣势:
1. 对于相同数量的数据集而言,文件比rdb方式要大。
2.效率比RDB低
有操作步骤。
相关文章推荐
- Redis命令总结及其基础知识讲述
- Redis命令总结及其基础知识讲述
- java基础知识要点总结之几个重要关键字(关于static、this、final、)
- C/C++基础知识总结——数组、指针域、字符串
- Java基础知识学习笔记总结
- SQL Server数据库基础知识归纳总结
- yui--datatable基础和常用知识总结
- BroadcastReceive基础知识总结
- Redis知识总结
- C#基础知识总结
- 黑马程序员——基础知识总结_String类
- Java基础知识回顾之七 ----- 总结篇
- 计算机网络--基础知识总结
- ios9API基础知识总结(二)
- 总结mybatis基础知识
- (java 基础知识)java序列化和反序列话总结
- [C++ 面试基础知识总结]表达式和函数
- linux基础知识总结
- 基础知识2.Prop知识总结
- java基础知识总结(二)