![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
redis 相关
菜瓜_牛顿
枪如惊雷,照一身肝胆
展开
-
Redis面试题
Redis为啥是单线程的redis是基于内存操作的,CPU不是它的瓶颈,redis的瓶颈很有可能是机器内存的大小和网络带宽。这样完全可以用单线程,避免多线程之间的上线文切换和锁的问题。Redis是单线程的,为什么还快redis 是基于内存的,大部分请求都是内存操作; redis是单线程的,可以避免线程的上线文切换,也不用考虑锁,更没有死锁导致的性能消耗; 使用多路复用io模型,多个网络连接,复用一个线程; 数据结构简单,对数据结构的操作也简单; redis直接自己构建了vm机制redi原创 2020-05-19 13:37:52 · 156 阅读 · 0 评论 -
redis的主从复制
点击打开链接一般来说,要将Redis运用于工程项目中,只使用一台redis是万万不能的,原因如下:从结构上,单个Redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大;从容量上,单个Redis服务器内存容量有限,就算一台Redis服务器内容容量为256G,也不能将所有内容用作Redis存储内存,一般来说,单台Redis最大使用内存不应该超过20G。原创 2017-08-23 08:23:02 · 295 阅读 · 0 评论 -
JedisPool
如果有一条线程调用阻塞式操作 比如 blpop(如果list中有元素就pop 没有会阻塞),Redis是单线程的,如果调用blpop的线程出现阻塞,那么其他线程是无法对list进行操作的。所以就有了JedisPoolJedisPool pool=new JedisPool(); for(int i=0;i<100;i++){ Jedis j=pool.getResource(原创 2017-06-02 11:28:30 · 979 阅读 · 0 评论 -
redis常用命令
1、string类型: set、get添加键值对获得键值对、如果多次赋值会覆盖掉原来的value setnx会自动判断是否存在,如果存在返回0不存在返回1,并且不会覆盖原来的value setex设置失效时间(毫秒) setex colo原创 2017-08-03 09:57:24 · 298 阅读 · 0 评论 -
redis和memcached
1. 使用redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,list,set,sorted set,hash,即任何类型的kv结构(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 (4) 丰富的特性:可用于缓原创 2017-07-24 11:36:11 · 346 阅读 · 0 评论 -
redis.conf
# redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位,# 通常的格式就是 1k 5gb 4m 等酱紫:## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 10原创 2017-07-24 11:45:12 · 556 阅读 · 0 评论 -
Jedis里SortedSet相关操作
Jedis里的SortedSet 可以理解为有序集合或者优先队列,每个key都是有分值的,所以可以应用于排行榜或者某个用户的成就值 成就排名之类的关于分值排行相关当然index也都是从0开始的,-1结尾的,有双向性,默认排名是从小到大Jedis jedis=new Jedis(); jedis.flushAll();//清空 /* * SortedSet有序集合(优先队原创 2017-06-02 10:10:36 · 2248 阅读 · 0 评论 -
Jedis中Set集合
Set集合:sXXX方法涉及到离散数学中提到的 集合的交、并、差等操作以及删除 显示等基本操作,举例应用两个用户的共同好友、共同关注就是两个集合的交;再如微博上的点赞操作也可以理解为集合操作,如果点赞就用户就存在集合中通过sismember操作返回true,此时显示点亮图标,如果返回FALSE证明没在集合中没点赞。 /* * 集合Set,比如共同好友 共同关注之类的可以应用原创 2017-06-01 21:33:55 · 4869 阅读 · 0 评论 -
Jedis中hset散列相关操作
Redis的是kv数据库,对于value可以是以下几种情况哈希应用:在开发过程中,有些字段是临时的或者是开发后期才想到的,就直接添加进去(在设计开发过程中没有想好,比如小明在上学前没有学校字段,但上学后有学校字段) 可以利用哈希扩展。 /* * hashset * 对于某些不定项操作可以利用哈希扩展 */ String userKey="user12"原创 2017-06-01 20:55:40 · 127574 阅读 · 6 评论 -
Jedis中List相关操作
Jedis中list可以应用在比如 统计最近来访好友等操作, setex可以设置带过期时间的kv 比如验证码之类的, incr等方法主要是对数值型进行操作 public class JedisAdapter { public static void print(int index,Object obj){ System.out.println(String.format原创 2017-06-01 20:26:16 · 11334 阅读 · 0 评论 -
Redis持久化:aof和rdb
RDB 持久化可以在指定时间间隔内生成数据集的时间点快照。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。Redis 还可以同时使原创 2017-06-01 19:38:22 · 227 阅读 · 0 评论 -
Windows安装配置Redis
Redis是 Key-value数据库,支持主从同步,数据存在内存特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。 优势:性能极高 –原创 2017-06-01 17:24:03 · 529 阅读 · 0 评论