redis是什么?
redis(remote dictionary server),是一個(gè)典型以KV鍵值對(duì) nosql數(shù)據(jù)庫(kù),是使用C語(yǔ)言編寫的。
redis安裝
下載地址http://redis.io/download
安裝步驟:
1 首先需要安裝gcc,把下載好的redis-3.0.0-rc2.tar.gz 放到linux /usr/local文件夾下
2 進(jìn)行解壓
tar -zxvf redis-3.0.0-rc2.tar.gz
3 進(jìn)入到redis-3.0.0目錄下,進(jìn)行編譯
make
4 進(jìn)入到src下進(jìn)行安裝 make install 驗(yàn)證(ll查看src下的目錄,有redis-server 、redis-cil即可)
make install
5 建立倆個(gè)文件夾存放redis命令和配置文件
mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/bin
6 把redis-3.0.0下的redis.conf 移動(dòng)到/usr/local/redis/etc下,
cp redis.conf /usr/local/redis/etc/
7 把redis-3.0.0/src里的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-dump、redis-cli、redis-server
文件移動(dòng)到bin下,命令:
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-
dump redis-cli redis-server /usr/local/redis/bin
8 啟動(dòng)時(shí)并指定配置文件:./redis-server /usr/local/redis/etc/redis.conf(注意要使用后臺(tái)啟動(dòng),所以修改redis.conf里的 daemonize 改為yes)
./redis-server /usr/local/redis/etc/redis.conf
9 驗(yàn)證啟動(dòng)是否成功:
ps -ef | grep redis 查看是否有redis服務(wù) 或者 查看端口:netstat -tunpl | grep 6379
ps -ef | grep redis
netstat -tunpl | grep 6379
進(jìn)入redis客戶端 ./redis-cli 退出客戶端quit
退出redis服務(wù):
(1)pkill redis-server 、
(2)kill 進(jìn)程號(hào)、
(3)/usr/local/redis/bin/redis-cli shutdown
redis配置文件
1、bind ip
2、requirepass 密碼
3、port
4、兩種持久化技術(shù)--快照 、aof
5、slaveof slaveof 192.168.13.4 6379
masterauth 密碼
redis有五種基本數(shù)據(jù)類型
string 字符串
hash 對(duì)象
list 列表
set 集合
zset 有序集合
字符串的命令:
set key value # 保存一個(gè)鍵值對(duì)
get key # 通過(guò)key來(lái)去對(duì)應(yīng)的值

mset key1 v1 k2 v2... # 一次保存多個(gè)鍵值對(duì)
mget k1 k2 k3 # 通過(guò)key來(lái)去對(duì)應(yīng)的值

setex key second value # 保存一個(gè)鍵值對(duì),同時(shí)規(guī)定它的失效時(shí)間(second)

incr key # 對(duì)key對(duì)應(yīng)值 加一,注意,只對(duì)數(shù)據(jù)字符串有效
incrby key value # 對(duì)key對(duì)應(yīng)值 加value
decr key # 對(duì)key對(duì)應(yīng)值 減一,注意,只對(duì)數(shù)據(jù)字符串有效
decrby key value # 對(duì)key對(duì)應(yīng)值 減value

strlen key # 求key對(duì)應(yīng)值的長(zhǎng)度

append key value # 對(duì)key對(duì)應(yīng)的值進(jìn)行新的拼接

setnx key vaule # 如果存在key,則無(wú)效,如果不存在,則保存該鍵值對(duì)

hash命令:主要用來(lái)存儲(chǔ)對(duì)象的
u1 = User(1, "beibei", 18, "zhengzhou")
u2 = User(2, "xzh", 20, "zhengzhou")
hset key field value # 存儲(chǔ)key對(duì)應(yīng)屬性field的值
hget key field # 獲取key對(duì)應(yīng)屬性field的值
hmset key f1 v1 f2 v2...# 存儲(chǔ)key對(duì)應(yīng)多個(gè)屬性field的值
hmget key f1 f2... # 獲取key對(duì)應(yīng)多個(gè)屬性field的值


hgetall key # 獲取key對(duì)象所有屬性和對(duì)應(yīng)的值
hkeys key # 獲取key對(duì)象的所有屬性的名稱
hvals key # 獲取key對(duì)象的所有屬性的值
hlen key # 獲取key的所有屬性個(gè)數(shù)
hstrlen key field # 獲取key對(duì)應(yīng)的屬性的值的長(zhǎng)度

hexists key field # 判斷某個(gè)對(duì)象是否存在該屬性
hsetnx key field value # 判斷對(duì)象的屬性是否存在,存在則不操作,不存在,則保存


hincrby key field value # 對(duì)對(duì)象的屬性(必須是數(shù)字字符串)進(jìn)行加法運(yùn)算

key操作
keys * # 查詢當(dāng)前數(shù)據(jù)庫(kù)中所有key的個(gè)數(shù)

exists key # 判斷某個(gè)key是否存在在當(dāng)前數(shù)據(jù)庫(kù)
del key # 刪除對(duì)應(yīng)的key
type key # 判斷key的類型

expire key second value # 為一個(gè)存在的key設(shè)置一個(gè)失效時(shí)間
ttl key # 查看key的失效時(shí)間 -2表示不存在 -1 永久存在 正數(shù)表示存活的秒數(shù)

move key db # 移動(dòng)key到db數(shù)據(jù)庫(kù)中
select index # 切換數(shù)據(jù)庫(kù)

info [xxxx] # 查看當(dāng)前數(shù)據(jù)庫(kù)的狀態(tài)

dbsize # 返回當(dāng)前數(shù)據(jù)庫(kù)的key的個(gè)數(shù)

flushdb # 刪除當(dāng)前數(shù)據(jù)庫(kù)的所有數(shù)據(jù)
flushall # 刪除所有數(shù)據(jù)庫(kù)的所有數(shù)據(jù)
persist key # 讓key永久保存

list命令
lpush key v1 v2... # 從左側(cè)將值放入list中
rpush key v1 v2... # 從右側(cè)將值放入list中
lrange key start end # 循環(huán)顯示list
linsert key b|a piovt v # 將值插入到對(duì)應(yīng)的位置


lpop key # 從左側(cè)刪除第一個(gè)元素
rpop key # 從右側(cè)刪除最后一個(gè)元素

llen key # 獲取list的長(zhǎng)度
ltrim key start stop # 切割列表
lindex key index # 獲取索引位對(duì)應(yīng)的元素
