您好,登錄后才能下訂單哦!
本篇內容介紹了“redis3在linux安裝過程與基本操作”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
<一>redis安裝過程
[root@hadoop0 opt]# tar -zxvf redis-3.0.5.tar.gz
[root@hadoop0 opt]# cd redis-3.0.5/
[root@hadoop0 redis-3.0.5]# ls -l
[root@hadoop0 redis-3.0.5]# make
[root@hadoop0 redis-3.0.5]# cd src/
[root@hadoop0 src]# make install
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL in
[root@hadoop0 src]# cd /usr/local/
[root@hadoop0 local]# mkdir -p /usr/local/redis/bin
[root@hadoop0 local]# mkdir -p /usr/local/redis/etc
[root@hadoop0 local]# mv /opt/redis-3.0.5/redis.conf /usr/local/redis/etc/
[root@hadoop0 src]# mv redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server redis-trib.rb /usr/local/redis/bin/
[root@hadoop0 bin]# cd /usr/local/bin
[root@hadoop0 bin]# ./redis-server
(備注:產生警告,前臺啟動,若想后臺啟動,修改redis.conf配置文件:#daemonize yes YES作為守護進程運行,NO 反之)
5436:C 06 Nov 18:51:10.541 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
5436:M 06 Nov 18:51:10.542 * Increased maximum number of open files to 10032 (it was originally set to 1024).
5436:M 06 Nov 18:51:10.558 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.5 (00000000/0) 32 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 5436
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
5436:M 06 Nov 18:51:10.562 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
5436:M 06 Nov 18:51:10.563 # Server started, Redis version 3.0.5
5436:M 06 Nov 18:51:10.565 # 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.
5436:M 06 Nov 18:51:10.567 * The server is now ready to accept connections on port 6379
[root@hadoop0 bin]# ./redis-server ../etc/redis.conf
(備注:啟動方式二,消除警告前臺啟動,若想后臺啟動,修改redis.conf:#daemonize yes YES作為守護進程運行,NO 反之)
5447:M 06 Nov 18:52:51.791 * Increased maximum number of open files to 10032 (it was originally set to 1024).
5447:M 06 Nov 18:52:51.792 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.5 (00000000/0) 32 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 5447
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
<二> 配置文件說明
配置redis.conf配置文件:
#是否作為守護進程運行
daemonize yes
#配置pid的存放路徑及文件名,默認為當前路徑下
pidfile redis.pid
#Redis默認監聽端口
port 6379
#客戶端閑置多少秒后,斷開連接
timeout 300
#日志顯示級別
loglevel verbose
#指定日志輸出的文件名,也可指定到標準輸出端口
logfile stdout
#設置數據庫的數量,默認連接的數據庫是0,可以通過select N來連接不同的數據庫
databases 16
#保存數據到disk的策略
#當有一條Keys數據被改變是,900秒刷新到disk一次
save 900 1
#當有10條Keys數據被改變時,300秒刷新到disk一次
save 300 10
#當有1w條keys數據被改變時,60秒刷新到disk一次
save 60 10000
#當dump .rdb數據庫的時候是否壓縮數據對象
rdbcompression yes
#dump數據庫的數據保存的文件名
dbfilename dump.rdb
#Redis的工作目錄
dir /home/falcon/redis-2.0.0/
########### Replication #####################
#Redis的復制配置
# slaveof <masterip> <masterport>
# masterauth <master-password>
############## SECURITY ###########
# requirepass foobared
############### LIMITS ##############
#最大客戶端連接數
# maxclients 128
#最大內存使用率
# maxmemory <bytes>
########## APPEND ONLY MODE #########
#是否開啟日志功能
appendonly no
# 刷新日志到disk的規則
# appendfsync always
appendfsync everysec
# appendfsync no
################ VIRTUAL MEMORY ###########
#是否開啟VM功能
vm-enabled no
# vm-enabled yes
vm-swap-file logs/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
############# ADVANCED CONFIG ###############
glueoutputbuf yes
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
#是否重置Hash表
activerehashing yes
<三>五朵金花:五大數據類型
redis值(value)可以是 字符串(String), 哈希(hashes), 列表(list), 集合(sets) 和 有序集合(sorted sets)
對value操作的命令
exists(key):確認一個key是否存在
del(key):刪除一個key
type(key):返回值的類型
keys(pattern):返回滿足給定pattern的所有key
randomkey:隨機返回key空間的一個
keyrename(oldname, newname):重命名key
dbsize:返回當前數據庫中key的數目
expire:設定一個key的活動時間(s)
ttl:獲得一個key的活動時間
select(index):按索引查詢
move(key, dbindex):移動當前數據庫中的key到dbindex數據庫
flushdb:刪除當前選擇數據庫中的所有key
flushall:刪除所有數據庫中的所有key
對String操作的命令
set(key, value):給數據庫中名稱為key的string賦予值value
get(key):返回數據庫中名稱為key的string的value
getset(key, value):給名稱為key的string賦予上一次的value
mget(key1, key2,…, key N):返回庫中多個string的value
setnx(key, value):添加string,名稱為key,值為value
setex(key, time, value):向庫中添加string,設定過期時間time
mset(key N, value N):批量設置多個string的值
msetnx(key N, value N):如果所有名稱為key i的string都不存在
incr(key):名稱為key的string增1操作
incrby(key, integer):名稱為key的string增加integer
decr(key):名稱為key的string減1操作
decrby(key, integer):名稱為key的string減少integer
append(key, value):名稱為key的string的值附加value
substr(key, start, end):返回名稱為key的string的value的子串
對List操作的命令
rpush(key, value):在名稱為key的list尾添加一個值為value的元素
lpush(key, value):在名稱為key的list頭添加一個值為value的 元素
llen(key):返回名稱為key的list的長度
lrange(key, start, end):返回名稱為key的list中start至end之間的元素
ltrim(key, start, end):截取名稱為key的list
lindex(key, index):返回名稱為key的list中index位置的元素
lset(key, index, value):給名稱為key的list中index位置的元素賦值
lrem(key, count, value):刪除count個key的list中值為value的元素
lpop(key):返回并刪除名稱為key的list中的首元素
rpop(key):返回并刪除名稱為key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
brpop(key1, key2,… key N, timeout):rpop的block版本。
rpoplpush(srckey, dstkey):返回并刪除名稱為srckey的list的尾元素,并將該元素添加到名稱為dstkey的list的頭部
對Set操作的命令
sadd(key, member):向名稱為key的set中添加元素member
srem(key, member) :刪除名稱為key的set中的元素member
spop(key) :隨機返回并刪除名稱為key的set中一個元素
smove(srckey, dstkey, member) :移到集合元素
scard(key) :返回名稱為key的set的基數
sismember(key, member) :member是否是名稱為key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, (keys)) :求交集并將交集保存到dstkey的集合
sunion(key1, (keys)) :求并集
sunionstore(dstkey, (keys)) :求并集并將并集保存到dstkey的集合
sdiff(key1, (keys)) :求差集
sdiffstore(dstkey, (keys)) :求差集并將差集保存到dstkey的集合
smembers(key) :返回名稱為key的set的所有元素
srandmember(key) :隨機返回名稱為key的set的一個元素
對Hash操作的命令
hset(key, field, value):向名稱為key的hash中添加元素field
hget(key, field):返回名稱為key的hash中field對應的value
hmget(key, (fields)):返回名稱為key的hash中field i對應的value
hmset(key, (fields)):向名稱為key的hash中添加元素field
hincrby(key, field, integer):將名稱為key的hash中field的value增加integer
hexists(key, field):名稱為key的hash中是否存在鍵為field的域
hdel(key, field):刪除名稱為key的hash中鍵為field的域
hlen(key):返回名稱為key的hash中元素個數
hkeys(key):返回名稱為key的hash中所有鍵
hvals(key):返回名稱為key的hash中所有鍵對應的value
hgetall(key):返回名稱為key的hash中所有的鍵(field)及其對應的value
小示例:
#在Shell命令行下啟動Redis客戶端工具。
命令行連接參數
redis-cli參數
Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <hostname> Server hostname (default: 127.0.0.1)
-p <port> Server port (default: 6379)
-s <socket> Server socket (overrides hostname and port)
-a <password> Password to use when connecting to the server
-r <repeat> Execute specified command N times
-i <interval> When -r is used, waits <interval> seconds per command.
It is possible to specify sub-second times like -i 0.1
-n <db> Database number
-x Read last argument from STDIN
-d <delimiter> Multi-bulk delimiter in for raw formatting (default: \n)
-c Enable cluster mode (follow -ASK and -MOVED redirections)
--raw Use raw formatting for replies (default when STDOUT is not a tty)
--latency Enter a special mode continuously sampling latency
--slave Simulate a slave showing commands received from the master
--pipe Transfer raw Redis protocol from stdin to server
--bigkeys Sample Redis keys looking for big keys
--eval <file> Send an EVAL command using the Lua script at <file>
--help Output this help and exit
--version Output version and exit
/> redis-cli
#清空當前選擇的數據庫,以便于對后面示例的理解。
redis 127.0.0.1:6379> flushdb
OK
#添加String類型的模擬數據。
redis 127.0.0.1:6379> set mykey 2
OK
redis 127.0.0.1:6379> set mykey2 "hello"
OK
#添加Set類型的模擬數據。
redis 127.0.0.1:6379> sadd mysetkey 1 2 3
(integer) 3
#添加Hash類型的模擬數據。
redis 127.0.0.1:6379> hset mmtest username "stephen"
(integer) 1
#根據參數中的模式,獲取當前數據庫中符合該模式的所有key,從輸出可以看出,該命令在執行時并不區分與Key關聯的Value類型。
redis 127.0.0.1:6379> keys my*
1) "mysetkey"
2) "mykey"
3) "mykey2"
#刪除了兩個Keys。
redis 127.0.0.1:6379> del mykey mykey2
(integer) 2
#查看一下剛剛刪除的Key是否還存在,從返回結果看,mykey確實已經刪除了。
redis 127.0.0.1:6379> exists mykey
(integer) 0
#查看一下沒有刪除的Key,以和上面的命令結果進行比較。
redis 127.0.0.1:6379> exists mysetkey
(integer) 1
#將當前數據庫中的mysetkey鍵移入到ID為1的數據庫中,從結果可以看出已經移動成功。
redis 127.0.0.1:6379> move mysetkey 1
(integer) 1
#打開ID為1的數據庫。
redis 127.0.0.1:6379> select 1
OK
#查看一下剛剛移動過來的Key是否存在,從返回結果看已經存在了。
redis 127.0.0.1:6379[1]> exists mysetkey
(integer) 1
#在重新打開ID為0的缺省數據庫。
redis 127.0.0.1:6379[1]> select 0
OK
#查看一下剛剛移走的Key是否已經不存在,從返回結果看已經移走。
redis 127.0.0.1:6379> exists mysetkey
(integer) 0
#準備新的測試數據。
redis 127.0.0.1:6379> set mykey "hello"
OK
#將mykey改名為mykey1
redis 127.0.0.1:6379> rename mykey mykey1
OK
#由于mykey已經被重新命名,再次獲取將返回nil。
redis 127.0.0.1:6379> get mykey
(nil)
#通過新的鍵名獲取。
redis 127.0.0.1:6379> get mykey1
"hello"
#由于mykey已經不存在了,所以返回錯誤信息。
redis 127.0.0.1:6379> rename mykey mykey1
(error) ERR no such key
#為renamenx準備測試key
redis 127.0.0.1:6379> set oldkey "hello"
OK
redis 127.0.0.1:6379> set newkey "world"
OK
#由于newkey已經存在,因此該命令未能成功執行。
redis 127.0.0.1:6379> renamenx oldkey newkey
(integer) 0
#查看newkey的值,發現它也沒有被renamenx覆蓋。
redis 127.0.0.1:6379> get newkey
"world"
#為后面的示例準備的測試數據。
redis 127.0.0.1:6379> set mykey "hello"
OK
#將該鍵的超時設置為100秒。
redis 127.0.0.1:6379> expire mykey 100
(integer) 1
#通過ttl命令查看一下還剩下多少秒。
redis 127.0.0.1:6379> ttl mykey
(integer) 97
#立刻執行persist命令,該存在超時的鍵變成持久化的鍵,即將該Key的超時去掉。
redis 127.0.0.1:6379> persist mykey
(integer) 1
#ttl的返回值告訴我們,該鍵已經沒有超時了。
redis 127.0.0.1:6379> ttl mykey
(integer) -1
#為后面的expire命令準備數據。
redis 127.0.0.1:6379> del mykey
(integer) 1
redis 127.0.0.1:6379> set mykey "hello"
OK
#設置該鍵的超時被100秒。
redis 127.0.0.1:6379> expire mykey 100
(integer) 1
“redis3在linux安裝過程與基本操作”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。