Redisの二八法則
19474 ワード
一般的なコマンド:
1、setex key有効時間value--------このキー値ペアの生存時間を追加して設定することを意味する
2、mset key1 value1 key2 value2 key3 value3 ....... -----------------複数のキー値ペアを一度に追加するという意味です
3、getset oldKey newValue----------既存のkeyの値を再設定し、上書きされた古い値を返すことを意味します
4、getrange key startIndex endIndex--------そのkeyに対応する値を取得する指定されたサブストリング(開始インデックスは0から)
5、mget key1 key2...... -------------一度に複数の見解に対応する値を取得するという意味です
6、append key newStr--------既存の文字列に新しいサブ文字列を追加することを意味する
7、strlen key------指定文字列の長さを計算する
8、expire key 10------そのkeyの文字列の有効期限を設定し、10秒後に自動的に削除(有効期限切れ)することを意味します
9、ttl key------このkeyの有効時間を確認する
10、ping--------現在の接続が正常かどうかをテストする
11、dbsize---------現在のデータベースのkeyの合計数を返します
12、info------現在接続されているサーバー情報と統計を表示する
13、flushdb---------現在選択されているデータベースのすべてのデータを空にする
14、flushall------すべてのデータベースのデータを空にします.
次にredisがどのように実際のプロジェクトで応用されているのかを共有します.もし問題があれば、コメントを残してください.ありがとうございます.
キャッシュの応用:ウェブサイトのアクセスデータの特徴の多くは「二八法則」に現れている:80%のビジネスアクセスは20%のデータに集中している.この場合、データの圧力を軽減し、Webサイトのデータアクセス速度を向上させるために、キャッシュメカニズムを使用してWebサイトを最適化することができます.
次に、redisキャッシュのデータにアクセスできるかどうかをテストして、テストコードを書いて、恥をかきました.
転載先:https://www.cnblogs.com/1315925303zxz/p/6415890.html
1、setex key有効時間value--------このキー値ペアの生存時間を追加して設定することを意味する
2、mset key1 value1 key2 value2 key3 value3 ....... -----------------複数のキー値ペアを一度に追加するという意味です
3、getset oldKey newValue----------既存のkeyの値を再設定し、上書きされた古い値を返すことを意味します
4、getrange key startIndex endIndex--------そのkeyに対応する値を取得する指定されたサブストリング(開始インデックスは0から)
5、mget key1 key2...... -------------一度に複数の見解に対応する値を取得するという意味です
6、append key newStr--------既存の文字列に新しいサブ文字列を追加することを意味する
7、strlen key------指定文字列の長さを計算する
8、expire key 10------そのkeyの文字列の有効期限を設定し、10秒後に自動的に削除(有効期限切れ)することを意味します
9、ttl key------このkeyの有効時間を確認する
10、ping--------現在の接続が正常かどうかをテストする
11、dbsize---------現在のデータベースのkeyの合計数を返します
12、info------現在接続されているサーバー情報と統計を表示する
13、flushdb---------現在選択されているデータベースのすべてのデータを空にする
14、flushall------すべてのデータベースのデータを空にします.
次にredisがどのように実際のプロジェクトで応用されているのかを共有します.もし問題があれば、コメントを残してください.ありがとうございます.
キャッシュの応用:ウェブサイトのアクセスデータの特徴の多くは「二八法則」に現れている:80%のビジネスアクセスは20%のデータに集中している.この場合、データの圧力を軽減し、Webサイトのデータアクセス速度を向上させるために、キャッシュメカニズムを使用してWebサイトを最適化することができます.
次に、redisキャッシュのデータにアクセスできるかどうかをテストして、テストコードを書いて、恥をかきました.
1 package com.itheima.store.service.impl;
2
3 import java.sql.SQLException;
4 import java.util.List;
5
6 import com.itheima.store.dao.CategoryDao;
7 import com.itheima.store.dao.impl.CategoryDaoImpl;
8 import com.itheima.store.domain.Category;
9
10 /**
11 * : 。
12 * */
13
14 import com.itheima.store.service.CategoryService;
15 import com.itheima.store.utils.BeanFactory;
16 import com.itheima.store.utils.DBUtil;
17 import com.itheima.store.utils.JedisUtils;
18
19 import net.sf.json.JSONArray;
20 import redis.clients.jedis.Jedis;
21
22 @SuppressWarnings("all")
23 public class CategoryServiceImpl implements CategoryService {
24
25 // @Override
26 // :
27 public List findAllCategory() throws Exception {
28 // CategoryDao dao = new CategoryDaoImpl();
29 CategoryDao dao = (CategoryDao) BeanFactory.getBean("CategoryDao");
30 return dao.findAllCategory();
31 }
32
33 @Override
34 // :
35 /*
36 * , (redis), , , ,
37 * 。
38 */
39 public String findAllCategoryAjax() throws Exception {
40 // jedis
41 Jedis jedis = null;
42 try {
43 // jedis
44 jedis = JedisUtils.getJedis();
45 //
46 String categoryList = jedis.get("category_list");
47 if (categoryList == null) {
48 // ,
49 System.out.println("--------- -----------");
50 // CategoryDao dao = new CategoryDaoImpl();
51 CategoryDao dao = (CategoryDao) BeanFactory.getBean("CategoryDao");
52 List list = dao.findAllCategory();
53 // list JSON
54 JSONArray json = JSONArray.fromObject(list);
55 // JSON ,
56 jedis.set("category_list", json.toString());
57 return jedis.get("category_list");
58 } else {
59 // ,
60 System.out.println("-------------- -----------------");
61 return categoryList;
62 }
63 } catch (Exception e) {
64 e.printStackTrace();
65 } finally {
66 JedisUtils.closeJedis(jedis);
67 }
68 return null;
69 }
70
71 @Override
72 // :
73 public void addCategory(Category category) throws Exception {
74 CategoryDao dao = (CategoryDao) BeanFactory.getBean("CategoryDao");
75 dao.addCategory(category);
76 // : category , , ,
77 // :
78 Jedis jedis = null;
79 try {
80 jedis = JedisUtils.getJedis();
81 // key
82 jedis.del("category_list");
83 } catch (Exception e) {
84 e.printStackTrace();
85 } finally {
86 JedisUtils.closeJedis(jedis);
87 }
88 }
89
90 @Override
91 // cid :
92 public Category findByCid(String cid) throws Exception {
93 CategoryDao dao = (CategoryDao) BeanFactory.getBean("CategoryDao");
94 Category category = dao.findByCid(cid);
95 return category;
96 }
97
98 @Override
99 // :
100 public void editCategory(Category category) throws Exception {
101 CategoryDao dao = (CategoryDao) BeanFactory.getBean("CategoryDao");
102 dao.editCategory(category);
103 // :
104 Jedis jedis = null;
105 try {
106 jedis = JedisUtils.getJedis();
107 // key
108 jedis.del("category_list");
109 } catch (Exception e) {
110 e.printStackTrace();
111 } finally {
112 JedisUtils.closeJedis(jedis);
113 }
114 }
115
116 @Override
117 // :
118 /**
119 * : , ,
120 * , 。
121 * */
122 public void deleteCategory(String cid) throws Exception {
123 Jedis jedis = null;
124 try {
125 // :
126 DBUtil.startTransaction();
127 CategoryDao dao = (CategoryDao) BeanFactory.getBean("CategoryDao");
128 // cid null:
129 dao.updateByCid(cid);
130 dao.deleteCategory(cid);
131 // :
132 DBUtil.commit();
133 // :
134 jedis = JedisUtils.getJedis();
135 // key
136 jedis.del("category_list");
137 } catch (Exception e) {
138 // :
139 DBUtil.rollBack();
140 e.printStackTrace();
141 } finally {
142 JedisUtils.closeJedis(jedis);
143 }
144 }
145
146 }
転載先:https://www.cnblogs.com/1315925303zxz/p/6415890.html