|
一、Redis的啟動(dòng) ? 1.基于docker啟動(dòng) 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)的客戶端來操作redis服務(wù)器 以交互的方式進(jìn)入到redis容器,再在/usr/local/bin/使用redis-cli工具連接redis服務(wù)器 得輸密碼 auth java1904 2.使用原生tar包啟動(dòng) ? 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)入解壓出來的文件夾內(nèi),然后使用make進(jìn)行編譯 ? ? 6)進(jìn)入 src,執(zhí)行./redis-server ../redis.conf 開啟服務(wù)端 ? 7)使用redis內(nèi)部的客戶端,來連接服務(wù)端,對(duì)redis服務(wù)端進(jìn)行操作 src里 執(zhí)行 ./redis-cli ? ? ? 二、Redis桌面版客戶端工具的使用 ? 三、Redis的配置文件 redis.conf 在啟動(dòng)redis服務(wù)器時(shí),可以通過配置文件里面的參數(shù)的設(shè)置,來設(shè)置服務(wù)器,如果啟動(dòng)redis服務(wù)器,不帶配置文件,那么參數(shù)都是默認(rèn)值。 ? ? 1.解除本機(jī)綁定 ? # bind 127.0.0.1 注釋掉 ? 2.redis數(shù)據(jù)庫默認(rèn)擁有16個(gè)庫,數(shù)據(jù)會(huì)被存放在這16個(gè)庫中的某一個(gè)。 ? ? 3.設(shè)置密碼 在連接時(shí)需要輸入密碼 ? 四、Java的Redis客戶端:Jedis redis自帶的客戶端: redis-cli 1.引入依賴 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency> ? ? 2.使用Jedis工具類
? ? 五、Redis的五大數(shù)據(jù)類型 ? 1. String類型 ? 1)增刪改查 ? 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è)值 ? 2)其他命令 incr 對(duì)整數(shù)進(jìn)行自增,浮點(diǎn)數(shù)也不行: set k1 1000 incr k1 decr 對(duì)整數(shù)進(jìn)行遞減 ? incrby 鍵 步長 一次增長指定步長的值 decrby 鍵 步長 一次減少指定步長的值 ? ? 2. hash類型 數(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ì)使用這種命名方式: 通過“:”對(duì)鍵名進(jìn)行分割,以起到語義化的效果。 比如 “user:1001:dreams” : 用戶id是1001的這個(gè)用戶的所有夢想 ? 如果鍵沖突了,那么如果之前的數(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集合
? ? hash類型的應(yīng)用場景: 存對(duì)象時(shí)更方便 ? 3. 列表類型 List 列表可以實(shí)現(xiàn)棧和隊(duì)列的效果 ? ? ? lpop 從左邊出列隊(duì) ? rpush 和 rpop ? 模擬棧的效果: ? 模擬隊(duì)列的效果: 先進(jìn)先出 ? ? 其他命令: LLEN key,查詢列表的長度 LINDEX key index,獲取指定索引的值 get(int index) LSET key index value,設(shè)置指定索引的值 Ltrim key start end 保留指定索引范圍的值 ? ? 4.Set類型 Sadd key element [element] 添加元素 Scard key 計(jì)算元素個(gè)數(shù) Smembers key 獲取所有的元素 Srem key element [element] 刪除元素 Sismember key element 判斷元素是否在集合中,存在返回1,否則返回0 Spop key 從集合隨機(jī)彈出元素 ? ? 5.zset類型 是一個(gè)有序的集合 ? 常用命令: Zadd key score member [score member ...] 添加成員,并為每個(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的操作
? ? ? 六、使用Jedis連接池 ?
? ? 使用連接池: Jedis jedis = JedisPoolUtil.getJedisFromPool();jedis.auth("java1904"); ? 來源:https://www./content-2-449201.html |
|
|