Redis5.0.7安裝使用及與Java交互(Centos 7 + JDK 8)

一、Redis的安裝

[root@192 ~]# clear
[root@192 ~]# cd /usr/local/src
[root@192 src]# rz

[root@192 src]# ls
redis-5.0.7.tar.gz
[root@192 src]# tar -xzvf redis-5.0.7.tar.gz
[root@192 src]# yum install -y install
[root@192 src]# cd redis-5.0.7
[root@192 redis-5.0.7]# make PREFIX=/usr/local/redis-5.0.7 install
[root@192 redis-5.0.7]# cp /usr/local/src/redis-5.0.7/redis.conf /usr/local/redis-5.0.7/bin
[root@192 redis-5.0.7]# cd /usr/local/redis-5.0.7/bin

[root@192 bin]# ./redis-server ./redis.conf &
[1] 5465
[root@192 bin]# 5465:C 27 Feb 2020 23:45:53.058 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
5465:C 27 Feb 2020 23:45:53.058 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=5465, just started
5465:C 27 Feb 2020 23:45:53.058 # Configuration loaded
5465:M 27 Feb 2020 23:45:53.058 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 5.0.7 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 5465
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

5465:M 27 Feb 2020 23:45:53.059 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
5465:M 27 Feb 2020 23:45:53.059 # Server initialized
5465:M 27 Feb 2020 23:45:53.059 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
5465:M 27 Feb 2020 23:45:53.059 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
5465:M 27 Feb 2020 23:45:53.059 * Ready to accept connections

二、Redis的使用

# 啓動 Redis 客戶端
[root@192 bin]# ls
redis-benchmark  redis-check-rdb  redis.conf      redis-server
redis-check-aof  redis-cli        redis-sentinel
[root@192 bin]# ./redis-cli


# 背景介紹
# Redis的數據結構爲Key-Value,其中Key都是字符串,而Value有五種不同的數據結構
# 1) 字符串類型 string;   
# 2) 哈希類型 hash: map格式;   
# 3) 列表類型 list: linkedlist格式,支持重複元素;
# 4) 集合類型 set : 不允許重複元素;
# 5) 有序集合類型 sortedset: 不允許重複元素,且元素有順序;

# 1.字符串類型 string
# 1.1 存儲string: set key value
127.0.0.1:6379> set string redis
OK
# 1.2 獲取string: get key
127.0.0.1:6379> get string
"redis"
# 1.3 刪除string: del key
127.0.0.1:6379> del string
(integer) 1

# 2.哈希類型 hash:
# 2.1 存儲hash: hset key field value
127.0.0.1:6379> hset hash class 043
(integer) 1
127.0.0.1:6379> hset hash name GDP
(integer) 1
# 2.2 獲取hash
# 2.2.1 獲取指定的field對應的值: hget key field
127.0.0.1:6379> hget hash class
"043"
# 2.2.2 獲取所有的field和value
127.0.0.1:6379> hgetall hash
1) "class"
2) "043"
3) "name"
4) "GDP"
# 2.3 刪除hash: hdel key field
127.0.0.1:6379> hdel hash class
(integer) 1

# 3.列表類型list
# 3.1 添加list
# 3.1.1 將元素加入列表左表: lpush key value
127.0.0.1:6379> lpush list a
(integer) 1
127.0.0.1:6379> lpush list b
(integer) 2
127.0.0.1:6379> lpush list c
(integer) 3
# 3.1.2 將元素加入列表右表: rpush key value
127.0.0.1:6379> rpush list d
(integer) 4
127.0.0.1:6379> rpush list d
(integer) 5
# 3.2 獲取list: lrange key start end
127.0.0.1:6379> lrange list 0 -1
1) "c"
2) "b"
3) "a"
4) "d"
5) "d"
# 3.3 刪除list
# 3.3.1 刪除列表左邊的元素,並將元素返回: lpop key
127.0.0.1:6379> lpop list
"c"
# 3.3.2 刪除列表右邊的元素,並將元素返回: rpop key
127.0.0.1:6379> rpop list
"d"

# 4. 集合類型set:(不允許重複元素)
# 4.1 存儲set: sadd key value
127.0.0.1:6379> sadd set a
(integer) 1
127.0.0.1:6379> sadd set b
(integer) 1
127.0.0.1:6379> sadd set c
(integer) 1
# 4.2 獲取set集合中所有元素: smembers key
127.0.0.1:6379> smembers set
1) "c"
2) "a"
3) "b"
# 4.3 刪除set集合中指定的某個元素: srem key value
127.0.0.1:6379> srem set a
(integer) 1

# 5. 有序集合類型 sortedset: 不允許重複元素,且元素有順序,每個元素都會關聯一個double類型的分數,redis根據這個分數來爲集合中的成員進行從小到大的排序.
# 5.1 存儲sortedset: zadd key score value
127.0.0.1:6379> zadd sortedset 97 a
(integer) 1
127.0.0.1:6379> zadd sortedset 98 b
(integer) 1
127.0.0.1:6379> zadd sortedset 99 c
(integer) 1
# 5.2 獲取sortedset: zrange key start end [withscores]
127.0.0.1:6379> zrange sortedset 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> zrange sortedset 0 -1 withscores
1) "a"
2) "97"
3) "b"
4) "98"
5) "c"
6) "99"
# 5.3 刪除sortedset: zrem key value
127.0.0.1:6379> zrem sortedset b
(integer) 1

# 6. 通用命令:
# 6.1 keys *: 查詢所有鍵;
# 6.2 type key: 獲取鍵對應的value類型;
# 6.3 del key: 刪除指定的key value

二、Redis配置文件

# Redis是內存數據庫,一旦電腦重啓,則所有數據丟失,但可以修改配置文件來持久化該數據庫的存儲於硬盤中

# 1. RDB: 默認使用該方式進行持久化,即在一定的時間間隔內,檢測到key的變化情況,然後持久化數據
# 1.1 redis.conf文件的配置
# after 900 sec (15 min) if at least 1 key changed 
save 900 1 
# after 300 sec (5 min) if at least 10 keys changed 
save 300 10 
# after 60 sec if at least 10000 keys changed 
save 60 10000
# 1,2 重啓該服務器並指定配置文件的名稱
[root@192 ~]# cd /usr/local/redis-5.0.7/bin
[root@192 bin]# ls
dump.rdb         redis-check-aof  redis-cli   redis-sentinel
redis-benchmark  redis-check-rdb  redis.conf  redis-server
[root@192 bin]# ./redis-server redis.conf

# AOF: 日誌記錄的方式,可以記錄每一條命令的操作,在每一次命令操作後持久化數據
# 2.1 redis.conf文件的配置
appendonly no(關閉aof) --> appendonly yes (開啓aof) 
# appendfsync always : 每一次操作都進行持久化 
appendfsync everysec : 每隔一秒進行一次持久化 
# appendfsync no : 不進行持久化


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章