1安裝reids
1.1Linux(centos7)安裝Redis
- 進入官網
- 通過Xftp 6,將其移動到linux下,然後解壓
-
tar -zxvf redis-6.0.9.tar .gz #tar -zxvf reids文件名稱
-
- 進入redis文件夾
- 安裝redis之前需要安裝一個依賴: yum install gcc-c++
- 開始安裝reids
- 先進行編輯:make
- 然後安裝:make install
- 配置reids
- 先進入redis的utils文件夾下
- 然後拷貝redis的啓動腳本,拷貝到/etc/init.d/文件夾下:cp redis_init_script /etc/init.d/
- 再把redis文件夾下的redis.conf拷貝到/usr/local/redis 下;然後進入/usr/local/redis 文件夾下 ,修改redis.conf => vim redis.conf
-
找到daemonize 修改爲no
-
- 設置redis啓動腳本
-
cd /etc/init. d/ vim redis init script
- 給腳本運行權限
-
- 運行redis=》 ./redis_init_scrip start
- 設置redis開機啓動:進入redis_init_script 添加【#chkconfig:22345 10 90 #description:Start and Stop redis】。填寫完之後將此註冊到服務器中=》chkconfig redis_init_script on
1.2如果安裝失敗
- 嘗試安裝gcc全套
-
yum install cpp yum install binutils yum install glibc yum install glibc-kernheaders yum install glibc-common yum install glibc-devel yum install gcc yum install make
-
- 升級gcc
-
yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash
-
- 設置永久升級
-
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
-
2Redis基礎
2.1Redis類型
2.1.1String類型
- string字符串
- string:最簡單的字符串類型鍵值對緩存,也是最基本的
- key相關
- keys* :查看所有的key (不建議在生產上使用,有性能影響)
- type key : key的類型
- string類型
- get/set/del :查詢/設置/刪除
- set rekey data :設置已經存在的key ,會覆蓋
- setnx rekey data :設置已經存在的key ,不會覆蓋
- set key value ex time :設置帶過期時間的數據
- expire key :設置過期時間
- ttl:查看剩餘時間,-1永不過期,-2過期
- append key :臺並字符串
- strlen key :字符串長度
- incr key :累加1
- decr key :類減1
- incrby key num :累加給定數值
- decrby key num:累減給定數值
- getrange key start end :截取數據, end=-1代表到最後
- setrange key start newdata :從start位置開始替換數據
- mset :連續設值
- mget :連續取值
- msetnx :連續設置,如果存在則不設置
- 其他
- select index :切換數據庫,總共默認16個
- flushdb :刪除當前下邊db中的數據
- flushall :刪除所有db中的數據
2.1.2hash類型
- hash
- hash :類似map ,存儲結構化數據結構,比如存儲一一個對象(不能有嵌套對象)
- 使用
- hset key property value :
- -> hset user name imooc
- ->創建- -個user對象,這個對象中包含name屬性, name值爲imooc
- hget user name :獲得用戶對象中name的值
- hmset:設置對象中的多個鍵值對 -> hset user age 18 phone 139123123
- hmsetnx :設置對象中的多個鍵值對,存在則不添加 -> hset user age 18 phone 139123123
- hmget :獲得對象中的多個屬性 -> hmget user age phone
- ngetall user :獲得整個對象的內容
- hincrby user age 2 :累加屬性
- hincrbyfloat user age 2.2 :累加屬性
- hlen user :有多少個屬性
- hexists user age :判斷屬性是否存在
- hkeys user :獲得所有屬性
- hvals user :獲得所有值
- hdel user :刪除對象
- hset key property value :
2.1.3list類型
- list
- list:列表,[a, b.c, d...」
- 使用
- lpush userList12345:構建-一個ist ,從左邊開始存入數據
- rpush userList12345:構建- -個ist .從右邊開始存入數據
- Irange list start end :獲得數據
- lpop:從左側開始拿出一個數據
- rpop:從右側開始拿出一一個數據
- plg cow sheep chicken duck
- len list: list長度
- Index list index :獲取is1下標的值
- set list index value :把某個下標的值替換
- Iinsert ist before/after value :插入- -個新的值
- Irem list num value :刪除幾個相同數據
- trim list start end :截取值.替換原來的ist
2.1.4zset類型
- sorted set :
- sorted set :排序的set。可以去重可以排序。比如可以根據用戶積分做排名。積分作爲set的一一個數值。根據數值可以做排序。sel中的每- -1 lmemeber都帶有一一個分數
- 使用
- zadd zset 10 value1 20 value2 30 value3 :設置member對應的分數
- zrange zset 0 -1 :查看所有2set中的內容
- zrange zset 0 -1 withscores :帶有分數
- zrank zset value :獲得對應的下標
- zscore zset value :獲得對應的分數
- zcard zset :統計個數
- zcount zset分數1分數2 :統計個數
- zrangebyscore zset分數1分數2:壹詢分數之間的member(包含分數1分數2)
- zrangebyscore zset (分數1 (分數2 :查詢分數之間的member (不包含分數1和分數2 )
- zrangebyscore zset分數1分數2 limit start end:查詢分數之間的member(包含分數1分數2) ,獲得的結果集再次根據下標區間做查詢
- zrem zset value :刪member
2.2.Redis 整合springboot
- maven等導入
-
1.引入redis依賴 <!-引入redis 依賴-> <dependency> <groupId>org.springframework.boot</groupId> <arti factId>spring-boot-starter-data-redis</artifactId> </depcndency>
2.配置redis spring: redis: database: 1 host: 127.0.0.1 port: 6379 password: Ee123
3. controller測試 @Autowired private RedisTemplate redisTemplate; redi sTemplate. opsP orValue(). set (key, value); (String)redi sTemplate. opsF orValue(). get (key) ; redisTemplate. delete(key) ;
-
- controller種使用
-
@RestController ) @RequestMapping(("redis")) public class RedisController { @Autowired private RedisTempLate redisTempLate ; QGetMapping("/set" ) public object set(String key, String value) { redisT emplate . opsForValue() .set(key, value); return "Ok"; } @GetMapping(" /get" ) public object get(String key) { String。= (String) redisTemplate . opsForValue() .get(key); return 0 ; } @GetMapping(" /delete") public object deLete(String key) { redisTemplate . delete(key); return "0k" ; }
-
- 配置注意
-