Redis是c語言開發的。前端
安裝redis須要c語言的編譯環境。若是沒有gcc須要在線安裝。yum install gcc-c++linux
安裝步驟:c++
第一步:redis的源碼包上傳到linux系統。redis
第二步:解壓縮redis。緩存
第三步:編譯。進入redis源碼目錄。make 服務器
第四步:安裝。make install PREFIX=/usr/local/redisui
PREFIX參數指定redis的安裝目錄。通常軟件安裝到/usr目錄下spa
第五步常見錯誤線程
(1)若出現以下提示,則說明未安裝gcc,使用命令安裝gcc:yum install gcc
[root@localhost redis-2.8.17]# make
cd src && make all
make[1]: Entering directory `/root/redis-2.8.17/src‘
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/root/redis-2.8.17/src‘
make: *** [all] Error 2
(2)若出現以下提示,則將make改成make MALLOC=libc,推測是由於編譯庫的問題。
[root@localhost redis-2.8.17]# make
cd src && make all
make[1]: Entering directory `/root/redis-2.8.17/src‘
CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/redis-2.8.17/src‘
make: *** [all] Error 2
3d
前端啓動:在redis的安裝目錄下直接啓動redis-server
[root@localhost bin]# ./redis-server
後臺啓動:
把/root/redis-3.0.0/redis.conf複製到 /usr/local/redis/bin目錄下
[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/bin/
修改配置文件:
[root@localhost bin]# ./redis-server redis.conf
查看redis進程:
[root@localhost bin]# ps aux|grep redis
root 5190 0.1 0.3 33936 1712 ? Ssl 18:23 0:00 ./redis-server *:6379
root 5196 0.0 0.1 4356 728 pts/0 S+ 18:24 0:00 grep redis
[root@localhost bin]#
[root@localhost bin]# ./redis-cli
默認鏈接localhost運行在6379端口的redis服務。
[root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379
-h:鏈接的服務器的地址
-p:服務的端口號
關閉redis:[root@localhost bin]# ./redis-cli shutdown
String:key-value(作緩存)
Redis中全部的數據都是字符串。命令不區分大小寫,key是區分大小寫的。Redis是單線程的。Redis中不適合保存內容大的數據。
get、set、
incr:加一(生成id)
Decr:減一
Hash:key-fields-values(作緩存)
至關於一個key對於一個map,map中還有key-value
使用hash對key進行歸類。
Hset:向hash中添加內容
Hget:從hash中取內容
List:有順序可重複
192.168.25.153:6379> lpush list1 a b c d
(integer) 4
192.168.25.153:6379> lrange list1 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
192.168.25.153:6379> rpush list1 1 2 3 4
(integer) 8
192.168.25.153:6379> lrange list1 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
5) "1"
6) "2"
7) "3"
8) "4"
192.168.25.153:6379>
192.168.25.153:6379> lpop list1
"d"
192.168.25.153:6379> lrange list1 0 -1
1) "c"
2) "b"
3) "a"
4) "1"
5) "2"
6) "3"
7) "4"
192.168.25.153:6379> rpop list1
"4"
192.168.25.153:6379> lrange list1 0 -1
1) "c"
2) "b"
3) "a"
4) "1"
5) "2"
6) "3"
192.168.25.153:6379>
Set:元素無順序,不能重複
192.168.25.153:6379> sadd set1 a b c c c d
(integer) 4
192.168.25.153:6379> smembers set1
1) "b"
2) "c"
3) "d"
4) "a"
192.168.25.153:6379> srem set1 a
(integer) 1
192.168.25.153:6379> smembers set1
1) "b"
2) "c"
3) "d"
192.168.25.153:6379>
還有集合運算命令,自學。
SortedSet(zset):有順序,不能重複
192.168.25.153:6379> zadd zset1 2 a 5 b 1 c 6 d
(integer) 4
192.168.25.153:6379> zrange zset1 0 -1
1) "c"
2) "a"
3) "b"
4) "d"
192.168.25.153:6379> zrem zset1 a
(integer) 1
192.168.25.153:6379> zrange zset1 0 -1
1) "c"
2) "b"
3) "d"
192.168.25.153:6379> zrevrange zset1 0 -1
1) "d"
2) "b"
3) "c"
192.168.25.153:6379> zrange zset1 0 -1 withscores
1) "c"
2) "1"
3) "b"
4) "5"
5) "d"
6) "6"
192.168.25.153:6379> zrevrange zset1 0 -1 withscores
1) "d"
2) "6"
3) "b"
4) "5"
5) "c"
6) "1"
192.168.25.153:6379>
設置key的過時時間。
Expire key second:設置key的過時時間
Ttl key:查看key的有效期
Persist key:清除key的過時時間。Key持久化。
192.168.25.153:6379> expire Hello 100
(integer) 1
192.168.25.153:6379> ttl Hello
(integer) 77