实时搜索: redis存储在哪里

redis存储在哪里

451条评论 6158人喜欢 4536次阅读 784人点赞
能不能设置密码,只有知道密码的可以修改,不知道密码的只允许get 到数据,但不能修改 , com.orangefunction.tomcat.redissessions.RedisSessionManager sessionFromSerializedDataSEVERE: Unable to deserialize into sessionjava.lang.ClassNotFoundException: ...

redis 和map存储有什么区别: Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:
Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
具体为什么会出现上面的结论,以下为收集到的资料:
1、数据类型支持不同
与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多。最为常用的数据类型主要由五种:String、Hash、List、Set和Sorted Set。Redis内部使用一个redisObject对象来表示所有的key和value。redisObject最主要的信息如图所示:

type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存储的是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际redis内部是按数值型类存储和表示这个字符串的,当然前提是这个字符串本身可以用数值表示,比如:”123″ “456”这样的字符串。只有打开了Redis的虚拟内存功能,vm字段字段才会真正的分配内存,该功能默认是关闭状态的。
1)String
常用命令:set/get/decr/incr/mget等;
应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类;
实现方式:String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr、decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int。
2)Hash
常用命令:hget/hset/hgetall等
应用场景:我们要存储一个用户信息对象数据,其中包括用户ID、用户姓名、年龄和生日,通过用户ID我们希望获取该用户的姓名或者年龄或者生日;
实现方式:Redis的Hash实际是内部存储的Value为一个HashMap,并提供了直接存取这个Map成员的接口。如图所示,Key是用户ID, value是一个Map。这个Map的key是成员的属性名,value是属性值。这样对数据的修改和存取都可以直接通过其内部Map的Key(Redis里称内部Map的key为field), 也就是通过 key(用户ID) + field(属性标签) 就可以操作对应属性数据。当前HashMap的实现有两种方式:当HashMap的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,这时对应的value的redisObject的encoding为zipmap,当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。

3)List
常用命令:lpush/rpush/lpop/rpop/lrange等;
应用场景:Redis list的应用场景非常多,也是Redis最重要的数据结构之一,比如twitter的关注列表,粉丝列表等都可以用Redis的list结构来实现;
实现方式:Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。
4)Set
常用命令:sadd/spop/smembers/sunion等;
应用场景:Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的;
实现方式:set 的内部实现是一个 value永远为null的HashMap,实际就是通过计算hash的方式来快速排重的,这也是set能提供判断一个成员是否在集合内的原因。
5)Sorted Set
常用命令:zadd/zrange/zrem/zcard等;
应用场景:Redis sorted set的使用场景与set类似,区别是set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。当你需要一个有序的并且不重复的集合列表,那么可以选择sorted set数据结构,比如twitter 的public timeline可以以发表时间作为score来存储,这样获取时就是自动按时间排好序的。
实现方式:Redis sorted set的内部使用HashMap和跳跃表(SkipList)来保证数据的存储和有序,HashMap里放的是成员到score的映射,而跳跃表里存放的是所有的成员,排序依据是HashMap里存的score,使用跳跃表的结构可以获得比较高的查找效率,并且在实现上比较简单。

redis怎么存储list对象: 方案一:直接使用List结构,List里面存储二进制的任务Bean信息,这样做查询全部任务很方便,查询单条任务速度较慢,并且删除和修改状态很麻烦;方案二:直接使用Hash结构,Hash的key存储任务ID,value存储二进制的Bean信息,这样做查询所有任务、查询单条任务以及删除任务都很快,但是修改状态也必须先取出数据再修改再插入!

redis 存储中文,是怎么编码: 一个数据库建立的初期已经定了字符集了,若中途修改oracle server的字符集是非常重大的事情。你要考虑到修改字符集之后对已有data的影响,可能都变成了乱码。所以已经建立好的数据库最好最好不要修改字符集。 如果你查询过程当中出现乱码

如何查看Celery存储在redis里面的结果: celery使用redis作为broker是配置下就可以了,不需要自己操作redis,celery会自己处理好。你要自己操作redis的话,redis list的内容处理掉后应该删除,或者移动到另一个 专门存储已处理内容 的list!

redis将数据存储在内存中,用java客户端访问,但访问的同时也可以进行修改内存中的数据,能不能设置密码: redis不管他数据保存在哪里这个不重要,重要的是他是一个数据库,数据库就会有数据库应该有的常用功能,所以密码控制和权限管理肯定都有,加上相应的用户名密码,及权限就可以了

LevelDB 可以用来替换 Redis 做缓存吗: 可能很多人都不知道RedisStorage 和redis 之间的区别。

redis的存储是存储在内存里的, RedisStorage可以选择存储在磁盘里.
当redis崩溃的时候。redis 会从rdb或者aof文件重新读取数据到内存里。如果数据量很大的话。这个初始化是相当的慢。(这就是 redis的假数据持久)。
RedisStorage 是直接存储在 磁盘里。所以不存在这个数据重加载问题。

还有redis 存储是受物理内存限制的,比如你有几千万或者几亿的数据。如果存储在redis里。那得需要多巨大的内存了。使用RedisStorage 就没有物理内存限制这个问题。最大可以存储十亿数据。

最后说一下淘宝的Tair ldb项目。同样基于leveldb 存储引擎。 广泛的用在 登录淘宝、查看商品详情页面、在淘江湖和好友“捣浆糊”等。 说明leveldb 数据引擎的可靠性和海量数据存储。 但是开源版的Tair ldb 并不好用。所以自己写了个基于 leveldb的 server端。

tomcat7用redis存储session报错: 其实很简单,就几个步骤:
1.配置Tomcat的conf目录下的context.xml文件:
1> 单点Reids配置
<!--
Jedis save session
-->
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60"/>123456789123456789

2> Sentinel集群配置:
<!-- Sentinel 配置 -->
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
maxInactiveInterval="60"
sentinelMaster="mymaster"
sentinels="127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381,127.0.0.1:26382"
/>12345671234567

2.添加jar

3.测试
1>
存储Session:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("hello");
//取得Session对象
HttpSession session=request.getSession();
//设置Session属性
for(int i=0;i<100000;i++){
session.setAttribute("name"+i, "Magci_"+i);
}
}123456789123456789

2>重启Tomcat:假如Session保存在tomcat下,重启后Session不存在;如果保存在Redis下,Tomcat重启对Session无影响
3>取出Session:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("hello");
//取得Session对象
HttpSession session=request.getSession();
//取出Session属性
for(int i=0;i<100000;i++){
System.out.println(session.getAttribute("name"+i));
}
}123456789123456789

注意事项:从Tomcat6开始默认开启了Session持久化设置,测试时可以关闭本地Session持久化,其实也很简单,在Tomcat的conf目录下的context.xml文件中,取消注释下面那段配置即可:
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->12341234

详见这篇博客:Session持久化的实例分析
可以尝试运行上面的demo案例!

如何往redis中存储数据 java: 可以把组装好了得map数据转成json字符串,然后存到redis里面,从redis取出来之后再转回来使用

  • moto z怎样

    为什么装不上IE浏览器: 因为你的电脑本身有默认的IE你没有卸载,所以重新安装一个IE(不管什么版本)肯定会报这个错的,如果你想安装你想要的版本的话,必须先卸载你默认的IE:控制面板——》程序和功能——》查看已安装的更新,然后找到 Miros...

    788条评论 5106人喜欢 1128次阅读 342人点赞
  • 互联网金融业务有哪些

    怎样设置使得IE浏览器能用迅雷下载东西: 可能是你IE的管理加载项里面禁用了迅雷的插件,重新打开就得了,这是我的IE的管理加载项截图,我的是IE10,版本跟你的可能不同,但是IE都是大同小异的,参考一下吧。 ...

    275条评论 3935人喜欢 3859次阅读 993人点赞
  • pptv聚力的老板是谁

    车贷下月就还完了,需要到何部门办理哪些手续?: 很简单,拿到银行最后一个月的还款凭证,然后直接带着行驶证,身份证,以及以前的贷款合同等等,你觉得有关的都带上,直接去银行办理就可以了,它会把你车子的产证给你,就OK了。 ...

    447条评论 2740人喜欢 4142次阅读 637人点赞
  • 2016年存本取息的利率是多少

    蹦蹦床垫哪面朝上: 有弹力的一面朝上希望采纳谢谢 ...

    770条评论 1212人喜欢 1771次阅读 207人点赞
  • eir是什么意思

    我在今年买车贷款了55000,分三年还收了我5000元手续费和3000元保证金,贷款利率是1.26%,想请教各位: 这个费用你肯定要交的 要不他白给你忙活半天 主要包括(车贷服务费.资信验审费,协助车辆登记服务费,公证费)按理说还有履约保证金,但他收这个钱应该算在内的收2500差不多 你交5千有很大可能是碰黑了。 ...

    904条评论 4933人喜欢 4357次阅读 201人点赞
  • dota ruru 是谁

    IE 7如何设置打开新网页时停留在当前页:   第一、打开ie浏览器选择工具。  第二、 选择设置。  第三、选择当前窗口的新选项卡,在同一个窗口将会一直换新页面打开;选择第三个,可能在新页面,也可能把当前页面替换掉。  第四、然后点击确定,退出设置。  第五...

    238条评论 4194人喜欢 1419次阅读 476人点赞
  • dnf角色预约可以几个

    怎样修改电脑系统浏览器: 一般电脑用户都有自己喜欢且习惯使用的浏览器,而在QQ中,当好友给我们发来一段包含网址的消息时,用鼠标直接点击打开的往往不是我们中意的那款浏览器,而是QQ自带的TT浏览器,给很多使用者带来了不便。如何才能避开TT,使用...

    446条评论 2985人喜欢 2787次阅读 481人点赞