好程序員Java學(xué)習(xí)路線分享Redis快速入門,Redis的啟動(dòng)
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為昌都等服務(wù)建站,昌都等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為昌都企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。1) 不帶配置文件啟動(dòng)?docker run -p 6379:6379 redis
2) 帶配置文件啟動(dòng)
docker run -p 6379:6379 -v /usr/local/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
3)使用docker容器內(nèi)的客戶端來(lái)操作redis服務(wù)器
以交互的方式進(jìn)入到redis容器,再在/usr/local/bin/使用redis-cli工具連接redis服務(wù)器
得輸密碼
auth java1904
1)從官方下載tar.gz壓縮包,上傳到linux中
2)解壓
tar -zxvf ?...
3)下載make ?
apt-get install make
4)下載gcc,因?yàn)閞edis是c寫的,需要gcc工具
apt-get intall gcc
5)?進(jìn)入解壓出來(lái)的文件夾內(nèi),然后使用make進(jìn)行編譯
6)進(jìn)入?src,執(zhí)行./redis-server ?../redis.conf ???開啟服務(wù)端
7)使用redis內(nèi)部的客戶端,來(lái)連接服務(wù)端,對(duì)redis服務(wù)端進(jìn)行操作
src里 ???執(zhí)行 ??./redis-cli
redis.conf
在啟動(dòng)redis服務(wù)器時(shí),可以通過(guò)配置文件里面的參數(shù)的設(shè)置,來(lái)設(shè)置服務(wù)器,如果啟動(dòng)redis服務(wù)器,不帶配置文件,那么參數(shù)都是默認(rèn)值。
# bind ?127.0.0.1?注釋掉
在連接時(shí)需要輸入密碼
redis自帶的客戶端:?redis-cli
???? redis.clients ????jedis ????2.9.0
public?class?MyRedis?{ ????public?static?void?main(String[]?args)?{ ????????Jedis?jedis?=?new?Jedis("192.168.2.128",6379); ????????jedis.auth("java1904"); ????????jedis.set("兩個(gè)月后的目標(biāo)","12k"); ????????String?target?=?jedis.get("兩個(gè)月后的目標(biāo)"); ????????System.out.println(target); ????} }
set ?key ?value ???添加/修改 ?鍵值對(duì)
get ?key ?==> value ??根據(jù)鍵得到值
del ?key1 [key2...] ?根據(jù)鍵刪除鍵值對(duì),返回值刪除的個(gè)數(shù)
mset ?k1 v1 ?k2 v2 [key value ...] ???一次性插入多個(gè)值
mget ?k1 ?k2 ?????????????一次性拿多個(gè)值
incr ?????對(duì)整數(shù)進(jìn)行自增,浮點(diǎn)數(shù)也不行: ??set ?k1 ?1000 ?????????incr k1
decr ???對(duì)整數(shù)進(jìn)行遞減
incrby ?鍵 ?步長(zhǎng) ???一次增長(zhǎng)指定步長(zhǎng)的值 ???
decrby ?鍵 ?步長(zhǎng) ??一次減少指定步長(zhǎng)的值
數(shù)據(jù)類型的特點(diǎn):
鍵?- ?值: ?鍵值對(duì)
而且?鍵里可以存放多個(gè)鍵值對(duì)
hset ??k1 ??鍵-值
hget ??k1 ?鍵
hmset ?k1 ?鍵-值 ?鍵-值?...
hmget ?k1 ?鍵 ?鍵...
hdel ???k1 ??鍵 ?鍵...
其他命令:
hlen ?k1
查看k1有幾個(gè)鍵值對(duì)
hexists k1?鍵
查看鍵是否存在于k1中
hgetall k1
獲得K1中的所有的鍵值對(duì)
注意:?在實(shí)際使用時(shí),往往會(huì)使用這種命名方式:??通過(guò)“:”對(duì)鍵名進(jìn)行分割,以起到語(yǔ)義化的效果。
比如??“user:1001:dreams” ?:?用戶id是1001的這個(gè)用戶的所有夢(mèng)想
如果鍵沖突了,那么如果之前的數(shù)據(jù)類型與現(xiàn)在的數(shù)據(jù)類型不同,則會(huì)報(bào)這個(gè)異常:
redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value
使用jedis進(jìn)行操作時(shí),hmset中需要存入map集合
HashMap?map?=?new?HashMap (); map.put("d1","10000"); map.put("d2","20000"); jedis.hmset("user:1001:dreams",map);
hash類型的應(yīng)用場(chǎng)景: 存對(duì)象時(shí)更方便
列表可以實(shí)現(xiàn)棧和隊(duì)列的效果
lpop?從左邊出列隊(duì)
rpush?和 ?rpop
模擬棧的效果:
模擬隊(duì)列的效果:?先進(jìn)先出
其他命令:
LLEN key,查詢列表的長(zhǎng)度
LINDEX key index,獲取指定索引的值?get(int index)
LSET key index value,設(shè)置指定索引的值
Ltrim key start end?保留指定索引范圍的值
Sadd key element [element]?添加元素
Scard key?計(jì)算元素個(gè)數(shù)
Smembers key?獲取所有的元素
Srem key element [element]?刪除元素 ?
Sismember key element?判斷元素是否在集合中,存在返回1,否則返回0
Spop key?從集合隨機(jī)彈出元素
是一個(gè)有序的集合
常用命令:
Zadd key?scoremember [scoremember ...]?添加成員,并為每個(gè)成員設(shè)置分?jǐn)?shù)
Zcard key?計(jì)算成員的個(gè)數(shù)
Zscore key member?計(jì)算某個(gè)成員的分?jǐn)?shù)
Zrank key member?計(jì)算某個(gè)成員的排名
Zincrby key increment member?增加成員的分?jǐn)?shù)
Zrange key start end withscores?返回指定排名范圍的成員
zrevrange key start end?逆序展示
Zrem key member [member]?刪除成員、
jedis的操作
@Test public?void?testZset(){ ????Jedis?jedis?=?new?Jedis("192.168.2.128",6379); ????jedis.auth("java1904"); ????HashMap?map?=?new?HashMap (); ????map.put("l1",100d); ????map.put("l2",200d); ????//?map是一個(gè)HashMap ?的map? ????jedis.zadd("order1",map); ????jedis.zincrby("order1",200d,"l1"); ????Set ?order1?=?jedis.zrevrange("order1",?0,?-1); ????System.out.println(order1); }
package?com.qf.redis.util; import?redis.clients.jedis.Jedis; import?redis.clients.jedis.JedisPool; import?redis.clients.jedis.JedisPoolConfig; public?class?JedisPoolUtil?{ ????private?static?JedisPool?pool?; ????static{ ????????JedisPoolConfig?config?=?new?JedisPoolConfig(); ????????config.setMaxIdle(100); ????????config.setMaxWaitMillis(2000); ????????config.setMaxTotal(200); ????????String?host?=?"192.168.2.128"; ????????pool?=?new?JedisPool(config,host); ????} ????public?static?Jedis?getJedisFromPool(){ ???????return??pool.getResource(); ????} }
使用連接池:
Jedis jedis = JedisPoolUtil.getJedisFromPool();
jedis.auth("java1904");
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。