Day30-Redis&Jedis
来源:互联网 发布:linux用户加组 编辑:程序博客网 时间:2024/06/06 03:51
NOSql解决三高:
高并发
大数据:海量数据查询一条数据
高可靠和高扩展
Jedis介绍
redis不仅可以通过命令行来操作,现在主流的语言(Java,C#…)基本都有客户端的支持.所以我们要通过java来操作Redis.
企业里用的最多的是Jedis.
Jedis:只是java操作Redis的客户端,相当于jdbc
Jedis使用步骤:
需要用到第三方jar包(两个)来操作:Jedis
步骤:
1)导入jar包
2)创建jedis对象
new Jedis(“主机名,字符串类型”,端口号整型) int port = 6379; String host = “localhost”; new Jedis(host,port);
3)操作redis数据库(set、get、del)
4)释放资源
jedis.close();
@Test public void test01(){ Jedis jedis = new Jedis("192.168.139.128", 6379); //jedis.set("akey", "aaa"); String string = jedis.get("akey"); System.out.println(string); jedis.close(); }
Jedis工具类的抽取,用连接池
1)创建jedis连接词
1.1创建池子的配置对象
new JedisPool(poolConfig , host , port);
2)获得jedis
jedisPool.getResource();
3)操作redis(set、get、del)
JedisUtils:
public class JedisUtils { //配置 private static JedisPoolConfig config; //连接池 private static JedisPool pool; static{ config = new JedisPoolConfig(); config.setMaxTotal(10); config.setMaxIdle(5); String host = "192.168.139.128"; int port = 6379; pool = new JedisPool(config, host, port); } /** * @Title: JedisUtils.java * @Description: TODO(获得jedis对象) * @return * @author jjizh * @date 2017年7月14日 下午8:57:04 * @version V1.0 */ public static Jedis getJedis(){ return pool.getResource(); } /** * @Title: JedisUtils.java * @Description: TODO(关闭jedis对象,关闭资源) * @param jedis * @author jjizh * @date 2017年7月14日 下午9:01:33 * @version V1.0 */ public static void close(Jedis jedis){ if(jedis != null){ jedis.close(); } }}
redis中的数据结构
redis中存储的数据是以key-value的形式存在的.其中value支持5种数据类型
* 字符串(String)* 哈希(hash)* 字符串列表(list)* 字符串集合(set)* 有序的字符串集合(sorted-set或者叫zset)
1)key不要太长(不能大于1024个字节)
也不要太短,描述性不好
一般的统一写法:项目名_子模块名_key名称
(一)存储字符串(重点)
String是redis最基本的类型,一个key对应一个value
String类型是二进制安全的,一个键最大能够存储512MB
常见命令:
扩展命令
* - getset key value:先获取再设置* - incrby key count:指定增加数量* - decrby key count:指定减少数量* - append key value:追加(若有指定的key 则追加,若无,则设置一个),相当于拼接字符串
存储哈希 hash(重点)
Redis中的hash是一个键值对集合
Redis hash 是一个String类型的field和value的映射表,hash特别适合用于存储对象
可以看成是String key和String value的map容器,也就是说把值看成map集合
把第一个key当成是redis中的key,把value里面的key当成是字段
常见命令:
扩展命令
hlen key 获取哈希表中字段的数量
hincrby key filed increment:给指定的子键增加指定的值
hkeys key:获取所有哈希表中的字段
hvals key:获得所有的value
HEXISTS key field:查看哈希表 key 中,指定的字段是否存在。
存储list
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边),一个列表最多可以包含 232 次方- 1 个元素 (4294967295, 每个列表超过40亿个元素)。
单项链表:查询满,增加和删除快
双向列表:查询慢,删除和增加快,特别是在两头
redis列表是简单的字符串列表,按照插入顺序排序,也是一种双向列表。
特点:有序
存储set
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
特点:无序,唯一
集合成员是无序唯一的
存储sortedset (zset)
不重复、有序的。
Redis 有序集合(sortedset)和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
通用的操作
keys *: 查询所有的key
- exists key:判断是否有指定的key 若有返回1,否则返回0
- expire key 秒数:设置这个key在缓存中的存活时间
- ttl key:展示指定key的剩余时间
若返回值为 -1:永不过期
若返回值为 -2:已过期或者不存在
- del key:删除指定key
- rename key 新key:重命名
- type key:判断一个key的类型
Redis的特性:
1.多数据库性
redis默认是16个数据库, 编号是从0~15.
- select index:切换库
- move key index: 把key移动到几号库(index是库的编号)
- flushdb:清空当前数据库
- flushall:清空当前实例下所有的数据库
2.服务器命令(自学)
- ping :测试连接是否存活
- echo str: 打印内容
- quit: 退出连接
- dbsize:返回当前数据库key的数目
- info:获取服务器信息
3.订阅发布
- subscibe channel: 订阅频道
- psubscribe *: 批量订阅频道
- publish channel content:在指定的频道发布内容
- Day30-Redis&Jedis
- day30
- Day30
- day30
- python学习—Day30—redis
- redis jedis
- redis jedis
- redis jedis
- jedis-redis
- redis + Jedis
- redis jedis
- redis jedis
- Redis-Jedis连接Redis
- 征服 Redis + Jedis
- redis jedis使用总结
- 征服 Redis + Jedis
- redis jedis使用总结
- 征服 Redis + Jedis
- springmvc框架详解
- 禁止Html5在手机上屏幕页面缩放
- PAT 1018锤子剪刀布
- tcpdump抓包工具各参数详解
- URLEncode与URLDecode
- Day30-Redis&Jedis
- SM4密码算法(附源码)
- 抽象方法声明位置
- C语言简单知识点总结
- 将py文件打包成exe文件
- wave header
- Eclipse FindBugs插件安装
- ConcurrentHashMap总结
- 【C++】【C】浅谈C 与 C++ 的区别【标准又更新了。.】