linux下小试redis demo
先启动 redis-server /etc/redis/redis.conf
- package com.test;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Set;
- import redis.clients.jedis.Jedis;
- import redis.clients.jedis.JedisPool;
- import redis.clients.jedis.JedisPoolConfig;
- import redis.clients.jedis.JedisShardInfo;
- import redis.clients.jedis.ShardedJedis;
- import redis.clients.jedis.ShardedJedisPool;
- /**
- *
- * @author luozhonghua
- *
- */
- public class RedisClient {
- private Jedis jedis;// 非切片额客户端连接
- private JedisPool jedisPool;// 非切片连接池
- private ShardedJedis shardedJedis;// 切片额客户端连接
- private ShardedJedisPool shardedJedisPool;// 切片连接池
- public RedisClient() {
- initialPool();
- initialShardedPool();
- shardedJedis = shardedJedisPool.getResource();
- jedis = jedisPool.getResource();
- }
- /**
- * 初始化非切片池
- */
- private void initialPool() {
- // 池基本配置
- JedisPoolConfig config = new JedisPoolConfig();
- config.setMaxActive(20);
- config.setMaxIdle(5);
- config.setMaxWait(1000l);
- config.setTestOnBorrow(false);
- System.out.println("begin...");
- jedisPool = new JedisPool(config, "127.0.0.1", 6379);
- System.out.println("end...");
- }
- /**
- * 初始化切片池
- */
- private void initialShardedPool() {
- // 池基本配置
- JedisPoolConfig config = new JedisPoolConfig();
- config.setMaxActive(20);
- config.setMaxIdle(5);
- config.setMaxWait(1000l);
- config.setTestOnBorrow(false);
- // slave链接
- List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
- shards.add(new JedisShardInfo("127.0.0.1", 6379, "master"));
- // 构造池
- shardedJedisPool = new ShardedJedisPool(config, shards);
- }
- public void show() {
- KeyOperate();
- StringOperate();
- ListOperate();
- SetOperate();
- SortedSetOperate();
- HashOperate();
- jedisPool.returnResource(jedis);
- shardedJedisPool.returnResource(shardedJedis);
- }
- private void KeyOperate() {
- System.out.println("======================key==========================");
- // 清空数据
- System.out.println("清空库中全部数据:"+jedis.flushDB());
- // 推断key否存在
- System.out.println("推断key999键是否存在:"+shardedJedis.exists("key999"));
- System.out.println("新增key001,value001键值对:"+shardedJedis.set("key001", "value001"));
- System.out.println("推断key001是否存在:"+shardedJedis.exists("key001"));
- // 输出系统中全部的key
- System.out.println("新增key002,value002键值对:"+shardedJedis.set("key002", "value002"));
- System.out.println("系统中全部键例如以下:");
- Set<String> keys = jedis.keys("*");
- Iterator<String> it=keys.iterator() ;
- while(it.hasNext()){
- String key = it.next();
- System.out.println(key);
- }
- // 删除某个key,若key不存在。则忽略该命令。
- System.out.println("系统中删除key002: "+jedis.del("key002"));
- System.out.println("推断key002是否存在:"+shardedJedis.exists("key002"));
- // 设置 key001的过期时间
- System.out.println("设置 key001的过期时间为5秒:"+jedis.expire("key001", 5));
- try{
- Thread.sleep(2000);
- }
- catch (InterruptedException e){
- }
- // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
- System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
- // 移除某个key的生存时间
- System.out.println("移除key001的生存时间:"+jedis.persist("key001"));
- System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
- // 查看key所储存的值的类型
- System.out.println("查看key所储存的值的类型:"+jedis.type("key001"));
- /*
- * 一些其它方法:1、改动键名:jedis.rename("key6", "key0");
- * 2、将当前db的key移动到给定的db其中:jedis.move("foo", 1)
- */
- }
- private void StringOperate()
- {
- System.out.println("======================String_1==========================");
- // 清空数据
- System.out.println("清空库中全部数据:"+jedis.flushDB());
- System.out.println("=============增=============");
- jedis.set("key001","value001");
- jedis.set("key002","value002");
- jedis.set("key003","value003");
- System.out.println("已新增的3个键值对例如以下:");
- System.out.println(jedis.get("key001"));
- System.out.println(jedis.get("key002"));
- System.out.println(jedis.get("key003"));
- System.out.println("=============删=============");
- System.out.println("删除key003键值对:"+jedis.del("key003"));
- System.out.println("获取key003键相应的值:"+jedis.get("key003"));
- System.out.println("=============改=============");
- //1、直接覆盖原来的数据
- System.out.println("直接覆盖key001原来的数据:"+jedis.set("key001","value001-update"));
- System.out.println("获取key001相应的新值:"+jedis.get("key001"));
- //2、直接覆盖原来的数据
- System.out.println("在key002原来值后面追加:"+jedis.append("key002","+appendString"));
- System.out.println("获取key002相应的新值"+jedis.get("key002"));
- System.out.println("=============增,删,查(多个)=============");
- /**
- * mset,mget同一时候新增,改动。查询多个键值对
- * 等价于:
- * jedis.set("name","ssss");
- * jedis.set("jarorwar","xxxx");
- */
- System.out.println("一次性新增key201,key202,key203,key204及其相应值:"+jedis.mset("key201","value201",
- "key202","value202","key203","value203","key204","value204"));
- System.out.println("一次性获取key201,key202,key203,key204各自相应的值:"+
- jedis.mget("key201","key202","key203","key204"));
- System.out.println("一次性删除key201,key202:"+jedis.del(new String[]{"key201", "key202"}));
- System.out.println("一次性获取key201,key202,key203,key204各自相应的值:"+
- jedis.mget("key201","key202","key203","key204"));
- System.out.println();
- //jedis具备的功能shardedJedis中也可直接使用。以下測试一些前面没用过的方法
- System.out.println("======================String_2==========================");
- // 清空数据
- System.out.println("清空库中全部数据:"+jedis.flushDB());
- System.out.println("=============新增键值对时防止覆盖原先值=============");
- System.out.println("原先key301不存在时,新增key301:"+shardedJedis.setnx("key301", "value301"));
- System.out.println("原先key302不存在时,新增key302:"+shardedJedis.setnx("key302", "value302"));
- System.out.println("当key302存在时,尝试新增key302:"+shardedJedis.setnx("key302", "value302_new"));
- System.out.println("获取key301相应的值:"+shardedJedis.get("key301"));
- System.out.println("获取key302相应的值:"+shardedJedis.get("key302"));
- System.out.println("=============超过有效期键值对被删除=============");
- // 设置key的有效期,并存储数据
- System.out.println("新增key303。并指定过期时间为2秒"+shardedJedis.setex("key303", 2, "key303-2second"));
- System.out.println("获取key303相应的值:"+shardedJedis.get("key303"));
- try{
- Thread.sleep(3000);
- }
- catch (InterruptedException e){
- }
- System.out.println("3秒之后。获取key303相应的值:"+shardedJedis.get("key303"));
- System.out.println("=============获取原值,更新为新值一步完毕=============");
- System.out.println("key302原值:"+shardedJedis.getSet("key302", "value302-after-getset"));
- System.out.println("key302新值:"+shardedJedis.get("key302"));
- System.out.println("=============获取子串=============");
- System.out.println("获取key302相应值中的子串:"+shardedJedis.getrange("key302", 5, 7));
- }
- private void ListOperate() {
- }
- private void SetOperate() {
- }
- private void SortedSetOperate() {
- }
- private void HashOperate() {
- }
- public static void main(String[]args){
- new RedisClient().show();
- }
- }
linux下小试redis demo的更多相关文章
- linux 下安装redis以及php Redis扩展
[php] view plaincopy在CODE上查看代码片派生到我的代码片 linux 下安装redis以及php Redis扩展 环境配置: centos6. nginx/ php/ mysql ...
- linux下实现redis共享session的tomcat集群
为了实现主域名与子域名的下不同的产品间一次登录,到处访问的效果,因此采用rediss实现tomcat的集群效果.基于redis能够异步讲缓存内容固化到磁盘上,从而当服务器意外重启后,仍然能够让sess ...
- Linux 下安装 Redis server
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/defonds/article/details/30047611 本文简介了 Linu ...
- Linux下配置redis,c#简单调用
redis比较流行的nosql库: 我这里测试本机window系统,虚拟机安装linux系统,linux系统部署redis,windwo系统,c#调用linux系统的redis 第一步:linux下安 ...
- Linux 下安装redis
记录一下linux下的安装步骤,还是比较复杂的 1. 下载redis-2.8.19.tar.gz: ftp传到linux01上: 解压: tar –zxvf redis-2.8.19.tar.gz 2 ...
- Linux下安装Redis及搭建主从
Linux下安装Redis 首先在官网下载对应版本的redis包,这里本人使用的是redis-4.0.8.tar.gz. 然后在服务器中存放redis包的路径下执行tar –vxf redis-4 ...
- 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题
搭建环境:linux是centos7.4(请注意centos7以下版本的防火墙跟centos7以上的不同,使用redis客户端连接redis时会有区别,建议使用centos7以上版本) 一.下载red ...
- Linux下安装redis 3.0及C语言中客户端实现demo
1.获取安装文件 wget http://download.redis.io/redis-stable.tar.gz 2.解压文件 tar xzvf redis-stable.tar.gz 3.进入目 ...
- linux下安装Redis以及phpredis模块
一:redis的安装 1. 首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载 2. 通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作 3. ...
随机推荐
- CSS 的Hack 问题
1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以 ...
- zh-Hans & locales & vs code locale.json
zh-Hans & locales https://code.visualstudio.com/docs/getstarted/locales https://code.visualstudi ...
- GeoIP2 数据库更新地址
GeoIP2 数据库更新地址 数据库文件下载网页地址 http://dev.maxmind.com/geoip/geoip2/geolite2/ http://geolite.maxmind.com/ ...
- AtCoder keyence2019 E Connecting Cities
keyence2019_e $N$ 个节点的无向图 $G$,节点 $i,j$ 之间的边权值为 $|i - j| \times D + A_i + A_j$ . 求最小生成树(Minimum Spann ...
- 省选算法学习-回文自动机 && 回文树
前置知识 首先你得会manacher,并理解manacher为什么是对的(不用理解为什么它是$O(n)$,这个大概记住就好了,不过理解了更方便做$PAM$的题) 什么是回文自动机? 回文自动机(Pal ...
- [bzoj] 1878 HH的项链 || 莫队
原题 给定长为 n 的一个序列,接下来 m 次询问,每次询问区间 [ l , r ] 内有多少个不同的数. 莫队: 离线\(O(n\log(n))\). 将序列分块. 以左端点所在块为第一关键字,右端 ...
- 在AppCode中的razor调用HtmlHelper方法和UrlHelper方法
原文发布时间为:2011-05-17 -- 来源于本人的百度文章 [由搬家工具导入] 可以写一个帮助类,如下 using System.Web.WebPages;using System.Web.Mv ...
- 64位操作系统安装32位客户端和PL/SQL
PL/SQ只能使用32位的Oracle客户端.在64位系统下安装了64位的oracle 11g,使用PL/SQL需再安装32位Oracle客户端. 按以下方法试验成功: 1)安装32位的Oracle客 ...
- Oracle中DBMS_LOB包使用小结
本文主要介绍oracle数据库中dbms_lob包的使用以及使用dbms_lob包来维护lob数据库类型的基本方法.随着社会的发展,在现代信息系统的开发中,需要存储的已不仅仅是简单的文字信息,同时还包 ...
- 原生JavaScript实现jQuery的hasClass,removeClass,addClass,toggleClass
介绍: 1.hasClass:判断DOM元素是否存在类. 2.addClass:为的DOM元素添加类. 3.removeClass:删除DOM元素的类. 4.toggleClass:如果DOM元素存在 ...