Redis-Nosql數據庫入門


簡介

Redis是Nosql數據庫的一種,可基於內存亦可持久化的日志型、是一個Key-Value數據庫,多用在緩存方面

安裝

  • Windows

    • 下載地址, 最新版本的Redis好像僅支持64位

    • Windos下載Redis文件后直接解壓啟動redis-server.exe即可,下圖所示即啟動成功

    • 然后這個cmd窗口不要關閉,啟動同一目錄下的redis-cli.exe 出現下面的窗口即服務端連接成功

  • Linux

    • 安裝redis需要c語言的編譯環境。如果沒有gcc需要在線安裝。yum install gcc-c++

    • redis的源碼包上傳到linux系統。

    • 解壓縮redis。

    • 編譯。進入redis源碼目錄。執行指令:make

    • 安裝。make install PREFIX=/usr/local/redis 其中 PREFIX參數指定redis的安裝目錄。一般軟件安裝到/usr目錄下

基本的安裝到這里已經完成

redis的啟動

  • 前端啟動:在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/

    • 修改配置文件daemonize yes 然后啟動redis [root@localhost bin]# ./redis-server redis.conf 這種啟動方式為指定配置文件的啟動方式

  • 查看redis進程 [root@localhost bin]# ps aux|grep redis 會顯示兩行, 一行為redis進程 一行為查詢語句的進程

redis 客戶端連接

  • [root@localhost bin]# ./redis-cli 默認連接localhost運行在6379端口的redis服務,連接本地服務。

  • [root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379 -h:連接的服務器的地址 -p:服務的端口號

redis內的五種數據類型

redis是一個key-value數據庫, 即通過key可以取到存儲的value類型的數據 , 下面是五種類型

redis中所有的數據都是字符串。命令不區分大小寫,key是區分大小寫的。

key-value(鍵值對)

下面是幾種常用的命令

	get()  通過key獲取value

	set()  設置key,value

	getset()  先取到這個key的value然后再設置value

	del()  刪除key

	appen() 拼接字符串

key-fields-values(Hash)

下面是hash的存儲結構

使用示例 在實例中,我們設置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 runoobkey 中。

常用命令

	hset key field value    // 存儲

	hmset key field value field2 value.....  // 存多個

	hget key field   // 取值

	hmget key field field2 field3.....  // 取多個

	hgetall key // 取出全部

	hdel key field field2 // 刪除多個

	del key  // 刪除整個hash

	incrby key field incrument  // 增加值

	hexists key field  // 判斷指定key中的field是否存在
	 
	hlen key   // 獲取key中包含的field

	hkeys key // 獲取所有的key

	hvals key // 獲取所有的value

	hlen key // 找到對應的key的長度

list(隊列)

存儲結構, 這個存儲結構可以兩端都可以進行插入和刪除

使用示例, 在實例中我們使用了 LPUSH 將三個值插入了名為 runoobkey 的列表當中。

	lpush key values[value2 ..]   // 從左邊壓

	rpush key values[value2 ..]   // 從右邊壓

	lrange key start end  // 從左邊取

	lpop key  // 左邊彈棧(移出並且取出)

	rpop key  // 左右彈棧(移出並且取出)

	llen key  // 返回list長度

	lpushx key value // 如果key存在,則向頭插入,不存在,則不進行

	lrem key conunt value  // 從左往右刪除conunt個value的,count<0 則為從右往左 , 等於0 刪除所有value元素

	lset key index value //  在位置index插入值,0代表頭,-1代表尾

set 存儲結構和list相同,不過不允許有相同的元素,並且只能從一端來進行操作,並且set內的元素沒有順序

使用示例,在實例中我們通過 SADD 命令向名為 runoobkey 的集合插入的三個元素。

常用操作

	sadd key values[...]   // 添加多個元素

	srem key members[...]  // 刪除多個

	sismember key member  // 檢查元素是否存在

	smembers key  // 查詢

	sdiff key1,key2...  // 求key1 和 key2的差集

	sinter key1,key2 ...  // 返回key1和key2的交集

	sunion key1,key2 ...  // 返回key1和key2的並集

	scard key  // 獲取key中的長遠數量

	srandmember key   // 從key中隨機獲取一個值

sortedset,有序的set,排序方式根據權重來排序 所以在添加元素的時候需要給每個元素設置一個權重

使用示例 在實例中我們通過命令 ZADD 向 redis 的有序集合中添加了三個值並關聯上分數。

基本操作

	zadd key score member score2 member2  // 添加成員

	zrange key start end   // 獲取集合角標 start - end的元素

	zrange key start end  withscores // 獲取集合角標 start - end的元素 , 並且按照權重排序

	zcard key  // 獲取成員數量

	zscore key member  // 返回指定成員變量的權重

	zrevrange key start end withscore // 按照分數從大到小返回

	zremrangebyrank key start stop // 按照排名范圍刪除元素(從小到大)

	zremrangebyscore key min max // 按照分數范圍刪除元素

	zrangebyscore key min max [withscores][limit offset count]  // 返回分數在min-max范圍內的數,從高到低 limit: 表示從offset下標元素開始並返回count個成員變量

	zincrby key increment member   // 指定成員變量增加的分數

	zcount key min max  // 返回分數在min - max內的成員

	zrank key member // 返回成員在集合中排序(從小到大)

	zrevrank key member // 返回成員在集合中排序(從大到小)

上面就是redis中的五種數據結構,可以根據業務具體需求來選擇對應的機構

通用操作

	kess pattern  // 篩選 * 表示任意一個或多個字符 ? 表示任意一個

	del key1,key2..  // 刪除指定key

	exists key // 判斷key是否存在

	rename key newkey // 為當前key重命名

	expire key number //設置過期時間(單位:秒)

	ttl key // 獲取該key所剩的超時時間, -1 : 沒設置超時 -2:key不存在

	type key  // 獲取key的類型

	flushall // 刪除所有數據庫中的key

redis的可視化工具 RedisDesktopManager 官方網站下載即可, 打開軟件輸入host地址就能連接,進行可視化操作

![](http://images2017.cnblogs.com/blog/1260476/201712/1260476-20171206125530191-2075700718.png)

redis在java上的工具類 jedis 可以參照api進行使用 , 使用方式和jdbc相似.

我的博客即將同步至騰訊雲+社區,邀請大家一同入駐。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM