程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> 學習Redis就是如此簡單

學習Redis就是如此簡單

編輯:SyBase教程

學習Redis就是如此簡單


一、基礎簡介
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
二、redis主要文件功能介紹
**redis-benchmark:用來測試redis性能
redis-server:用來啟動redis服務
redis-cli:客戶端連接redis服務
redis.conf:redis的配置都在該文件匯總,下面主要介紹redis.conf的配置
redis.conf配置文件說明
dae**monize:是否以後台daemon的方式運行,如果以後台daemon的方式運行會在redis.pid文件寫入pid
pidfile:指定redis.pid文件的位置
port:redis監聽的端口號
timeout:請求超時時間
loglevel:日志信息的級別
logfile:日志文件的位置
databases:開啟數據庫的數量,默認是0,可以使用 SELECT 命令來切換數據庫
Save the DB on disk(save ):多少秒,多少個keys改變後存儲到disk
rdbcompression:是否使用壓縮
dbfilename:數據庫快照名,不包含路徑
dir:數據庫快照的保存路徑
slaveof :使用slaveof 把一個Redis實例設置成為另一個Redis Server的從庫。配置僅對當前Slave有效
masterauth :如果master有密碼保護,則需要進行密碼校驗,否則master會拒絕slave的請求
requirepass:在客戶端執行任何命令之前需要進行密碼驗證
maxclients:最大客戶端連接數,0為沒有上限
maxmemory:最大可用內存,如果超過redis會試圖刪除即將過期的keys,而保護還有很長生命周期的keys
maxmemory-policy:
volatile-lru -> 使用LRU算法來刪除過期的set
allkeys-lru -> 刪除任何遵循LRU算法的key
volatile-random ->隨機地刪除過期set中的key
allkeys->random -> 隨機地刪除一個key
volatile-ttl -> 刪除最近即將過期的key(the nearest expire time (minor TTL))
noeviction -> 根本不過期,寫操作直接報錯
appendonly:是否開啟appendonlylog,開啟的話每次寫操作會記一條log,這會提高數據抗風險能力,但影響效率。
appendfsync:appendonlylog如何同步到磁盤(三個選項,分別是每次寫都強制調用fsync、每秒啟用一次fsync、不調用fsync等待系統自己同步)
三、redis常用命令
啟動連接命令
1、redis-server redis.conf 啟動redis服務
2、redis-cli.exe -h [redis server IP] -a [redis password]或者redis-cli.exe -h [redis server IP] 然後再執行auth [redis password] 客戶端連接redis服務
Java數據操作命令
1、set(key,value)與get(key),mset(key,value,…,key,value)與mget(key,key,…,key,key)
set用來存放單個String類型,例如:

jedis.set("110", "匪警");
jedis.set("119", "火警");
jedis.set("120", "急救中心");
對

應獲取String類型數據使用get,例如:

jedis.get("110");
jedis.get("119");
jedis.get("120");

mset用來存放多個String類型,例如:
jedis.mset(“110”,”匪警”,”119”,”火警”,”120”,”急救中心”);
對應獲取多個String類型使用mget,例如;
jedis.mget(“110”,”119”,”120”)
2、lpush(key,value)與lrange(key,start,end)
lpush用來存放List類型。例如:

List<Region> list = service.loadRegion();
   String key = "regionList";
   for(int i=0;i<list.size();i++){
    jedis.lpush(key.getBytes(), SerializeUtil.serialize(list.get(i)));
   }

對應獲取List類型數據使用lrange

List<byte[]> lb = jedis.lrange("regionList".getBytes(), 0, -1);//0代表從第一個開始,-1代表截止到倒數第一個,-2代表倒數第二個

3、hmset(key,value)與hmget(key)
hmset用來存放HashMap類型,例如:

Map<String,String> loginMap = new HashMap<String,String>();
  loginMap.put("userName", "triger");
  loginMap.put("password", "DseowXduow");
  String mapKey = "loginMap";
  jedis.hmset(mapKey,loginMap);

對應獲取HashMap數據使用hmget,例如:

String userName = String.valueOf(jedis.hmget("loginMap", "userName"));
String password = String.valueOf(jedis.hmget("loginMap", "password"));

4、sadd(key,value)與smembers(key)
sadd用來存放Set類型,例如:

jedis.sadd("setKey", "setElements1");
jedis.sadd("setKey", "setElements2");
jedis.sadd("setKey", "setElements3");

對應獲取Set數據使用smembers,例如:

Set<String> set = jedis.smembers("setKey");

5、zadd(key,score,value)與zrange(key,start,end)
zadd用來存放sorted set,例如:

jedis.zadd("zset", 1.0, "zsetValue1");
jedis.zadd("zset", 2.0, "zsetValue2");
jedis.zadd("zset", 3.0, "zsetValue3");

對應獲取sorted set使用zrange,例如:

Set<String> set = jedis.zrange("zset", 0, -1);

後續我會繼續更新我的Redis學習之路

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved