设为首页 收藏本站
查看: 1922|回复: 0

[经验分享] redis的基本命令整理

[复制链接]

尚未签到

发表于 2017-12-21 09:29:35 | 显示全部楼层 |阅读模式
1 package deifeng.testRedis;  

  2  
  3 import java.util.HashMap;
  
  4 import java.util.List;
  
  5 import java.util.Set;
  
  6
  
  7 import org.junit.Test;
  
  8
  
  9 import redis.clients.jedis.BinaryClient.LIST_POSITION;
  
10 import redis.clients.jedis.Jedis;
  
11 import redis.clients.jedis.Tuple;
  
12
  
13 /**
  
14  *
  
15  * @author Administrator
  
16  * timer:2017年2月18日下午11:02:24
  
17  * intro:TODO
  
18  */

  
19 public>  
20     //创建redis 的客户端连接,绑定主机和端口号
  
21     private static String host="127.0.0.1";
  
22     private static int port =6379;
  
23     private Jedis jedis = TestCRUD.getRedisUtil(host, port);
  
24     
  
25     
  
26     
  
27     //测试连接
  
28     public void  testConn(){
  
29         System.out.println(jedis);
  
30     }
  
31     
  
32     /**
  
33      * 测试redis的五大基本类型操作
  
34      */
  
35     /**
  
36      * String 类型的简单命令
  
37      *
  
38      *    一 -------多
  
39      *    set      mset
  
40      */
  
41     @Test
  
42     public  void testString(){
  
43         //获取jedis对象    返回key=hhy2的type类型
  
44         /*String type = jedis.type("hhy2");
  
45         System.out.println(type);*/
  
46         /**
  
47          * 存储一个数据
  
48          *
  
49          * set   -------mset
  
50          */
  
51         //jedis.flushDB();       flushAll
  
52         String key1 = jedis.set("hhy", "hhy");
  
53         System.out.println(jedis.get("hhy"));
  
54         //是在key不存在,才会执行set操作,如果key存在,则此操作无效,返回值1代表成功,0代表失败
  
55         //setnx  ------msetnx
  
56         Long setnx = jedis.setnx("hhy1", "zs");
  
57         System.out.println(setnx);//1   代表插入的key在redis库中不存在
  
58         //setex  ---- mstex
  
59         jedis.setex("hhy", 100, "zsq");//100有效期   
  
60         
  
61         Long tt = jedis.ttl("hhy");
  
62         System.out.println(tt);
  
63         /**
  
64          * 存储多个数据
  
65          * mget  key1 value1  key2 value2...
  
66          * 类似于set对一个数据存储的语法
  
67          */
  
68         
  
69         
  
70         /**
  
71          * getrange
  
72          * getrange key star end
  
73          *
  
74          *    解释:获取存储在key中value的字串。字符串的截取有star和end决定,字符串的第一个字符编号是0,第二个是1,
  
75          *    一次类推;如果是负数,-1是最后一个字符,-2是倒数第二个字符,一次类推。
  
76          *
  
77          *    setrange
  
78          *  用value重写key值的一部分,偏移量由offset指定
  
79          *  
  
80          */
  
81         
  
82         jedis.set("test", "test123456");
  
83         System.out.println(jedis.getrange("test", 2, 5));
  
84         
  
85         
  
86         /**
  
87          * getset
  
88          */
  
89         String getset = jedis.getSet("hhy", "123");
  
90         System.out.println(getset);
  
91         
  
92         Long ll = jedis.append("hhy", "123");//添加以后的长度
  
93         
  
94         
  
95         /**
  
96          * 递增/减
  
97          * incr / incrby   ++   /  decr  /decrby  --
  
98          */
  
99         Long incr = jedis.incr("21");
  
100         System.out.println(incr);
  
101         
  
102         /**
  
103          * 删除key
  
104          * del
  
105          */
  
106         jedis.del("hhy");
  
107         System.out.println("=====================");
  
108         Set<String> keys = jedis.keys("*");
  
109         for (String string : keys) {
  
110             System.out.println(string +"---->"+jedis.get(string));
  
111         }
  
112         
  
113     }
  
114     
  
115     
  
116     
  
117     /**
  
118      * redis  ---- List
  
119      * lpush  rpush  linsert  添加命令
  
120      * lpop   rpop            删除命令
  
121      * lrange llen   lindex   查询命令
  
122      * lset                   修改命令
  
123      * rpoplpush              两个列表A,B,将A列表的尾元素添加到B列表的头元素中
  
124      */
  
125     @Test
  
126     public void testList(){
  
127         jedis.flushDB();//清空当前库
  
128         //添加一个list集合
  
129         /**
  
130          * 如果保证顺序
  
131          * left  降序
  
132          * right  顺序
  
133          */
  
134         jedis.lpush("zs", "3","2","1");//左侧插入一个list集合
  
135         jedis.rpush("li", "7","8","9");
  
136         /*
  
137         //遍历li集合
  
138         List<String> list = jedis.lrange("li", 0, -1);
  
139         for (String str : list) {
  
140             System.out.println(str);
  
141         }
  
142         
  
143         System.out.println("============");
  
144         //linsert插入一条数据
  
145         jedis.linsert("zs", LIST_POSITION.AFTER, "2", "12");
  
146         //遍历li集合
  
147         List<String> zs = jedis.lrange("zs", 0, -1);
  
148         for (String str : zs) {
  
149             System.out.println(str);
  
150         }
  
151         
  
152         //del
  
153         *//**
  
154          * lpop  rpop  分别代表是从左|右侧删除一条数据
  
155          * 并且把删除的数据值返回过来
  
156          *//*
  
157         System.out.println(jedis.lpop("zs"));
  
158         
  
159         
  
160         *//**
  
161          * 查询命令  lindex  llen
  
162          *//*
  
163         
  
164         System.out.println(jedis.lindex("li", 1));
  
165         System.out.println(jedis.lset("zs", 0, "hhy"));
  
166         
  
167         */
  
168         jedis.rpoplpush("li", "zs");
  
169         System.out.println("--------------");
  
170         List<String> zs1 = jedis.lrange("zs", 0, -1);
  
171         for (String string : zs1) {
  
172             System.out.println(string);
  
173         }
  
174     }
  
175     
  
176     
  
177     
  
178     /**
  
179      * Redis   --   Set
  
180      */
  
181     @Test
  
182     public void testSet(){
  
183         jedis.flushDB();
  
184         jedis.sadd("ss", "1","2","3");
  
185         System.out.println(jedis.smembers("ss"));
  
186         //在客户端命令中。存在是1  不存在是0
  
187         System.out.println(jedis.sismember("ss", "2"));
  
188         //set集合 的大小
  
189         System.out.println(jedis.scard("ss"));
  
190         //返回set集合中随机数据
  
191         System.out.println(jedis.srandmember("ss"));
  
192         //随即返回redis  中的key
  
193         System.out.println(jedis.randomKey());
  
194         
  
195         /**
  
196          * spop随机删除set集合的一个数据
  
197          * 集合之间的 操作
  
198          *
  
199          * sinter   交集
  
200          * sunion   并集
  
201          * sdiff    差集
  
202          * smove    把  1  集合转移到 2中
  
203          * >smove youSet mySet 4  ---将youSet中的数据4移除的同时将数据4添加到mySet中
  
204          */
  
205         jedis.sinter("可扩展的key,求交集");
  
206         jedis.sunion("可扩展的key,求并集");
  
207         jedis.sdiff("可扩展的key,求差集");
  
208         
  
209     }
  
210     
  
211     /**
  
212      * sorted-sort
  
213      *
  
214      * zadd 一次只能添加一个
  
215      */
  
216     @Test
  
217     public void testSortedSort(){
  
218         jedis.flushDB();
  
219         jedis.zadd("hhy", 100, "zs");
  
220         jedis.zadd("hhy", 101, "zs1");
  
221         jedis.zadd("hhy", 102, "zs2");
  
222         jedis.zadd("hhy", 103, "zs3");
  
223         //获取zset集合中的值  ---  是一个集合   asc
  
224         /**zrange       asc
  
225          * zrevrange    desc
  
226          */
  
227         Set<String> set = jedis.zrange("hhy", 0, -1);
  
228         for (String str : set) {
  
229             //获取分数
  
230             System.out.println(str);
  
231             //通过这个集合中的值,查询每一个值所对应的分数
  
232             Double zscore = jedis.zscore("hhy", str);
  
233             System.out.println(zscore);
  
234         }
  
235         //可以直接获取到值--分数的对应关系,封装到tuple对象中
  
236         Set<Tuple> set2 = jedis.zrangeWithScores("hhy", 0, -1);
  
237         for (Tuple tuple : set2) {
  
238             System.out.println(tuple.getScore()+" --->"+tuple.getElement());
  
239         }
  
240         //查看zset集合中的数据zs1是第一名
  
241         Long zrank = jedis.zrank("hhy", "zs1");
  
242         System.out.println(zrank);
  
243     }
  
244     
  
245     /**
  
246      * hash类型的操作
  
247      * 基本命令的操作
  
248      */
  
249     @Test
  
250     public void testHash(){
  
251         /**
  
252          * 如何在user中再存一个对象?
  
253          */
  
254         jedis.hset("user", "name", "hhy");
  
255         jedis.hset("user", "age", "25");
  
256         //jedis.hmset("u", new HashMap<String,String>());
  
257         System.out.println(jedis.hget("user", "name"));
  
258         //查询hash中的所有filed和value
  
259         jedis.hkeys("user");
  
260         jedis.hvals("user");
  
261         //s设置多个值和获取多个值  hmset   hmget
  
262         
  
263         
  
264         //获取所有的filed
  
265         jedis.hgetAll("user");
  
266         //当前有多少数据
  
267         jedis.hlen("user");
  
268     }
  
269     
  
270     /**
  
271      * 创建redis的连接对象
  
272      * @param host  主机
  
273      * @param port  端口号
  
274      * @return  jedis对象
  
275      */
  
276     public static Jedis getRedisUtil(String host,int port){
  
277         return new Jedis(host,port);
  
278     }
  
279     
  
280     
  
281 }

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-426346-1-1.html 上篇帖子: Ubuntu16.04.1上搭建分布式的Redis集群,并使用C#操作 下篇帖子: TP5.0 Redis(单例模式)(原)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表