database 16:是数据库个数
选择数据库的命令select 1或0…
save 储存的机制,全部注释或全部开启
dbfilename 数据库储存储存的位置 默认/var/lib/redis
安装
低版本
#yum -y install epel-release
#yum -y install redis
#systemctl restart redis
5.0.0版本
编译安装
#wget http://download.redis.io/releases/redis-5.0.0.tar.gz
#tar -zxvf redis-5.0.0.tar.gz
#yum -y install gcc gcc-c++
#cd redis-5.0.0
#make
#cp src/redis-cli /usr/bin
#cp src/redis-server /usr/bin/
vim redis.conf
修改 daemonize no 为 daemonize yes
# redis-server redis.conf
#redis-cli
redis-cli -p 6379 -h 127.0.0.1
添加:
set key value
如:
set username balabala
将字符串值value关联到key。如果key已经持有其他值,set命令就覆写旧值,无视其类型。并且默认的过期时间是永久,即永远不会过期。
查看:get key
查看所有key:keys *
删除:
del key 如:del username
设置过期时间
expire key timeout(单位为秒)
也可以在设置值的时候,一同指定过期时间:
set key value EX timeout 或:setex key timeout value
查看过期时间
ttl key 如:ttl username
列表操作
在列表左边添加元素:
lpush key value (lpush languages java php)
将值value插入到列表key的表头。如果key不存在,一个空列表会被创建并执行lpush操作。当key存在但不是列表类型时,将返回一个 错误。
在列表右边添加元素:
rpush key value
将值value插入到列表key的表尾。如果key不存在,一个空列表会被创建并执行RPUSH操作。当key存在但不是列表类型时,返回一个错误。
查看列表中的元素:
lrange key start stop
返回列表key中指定区间内的元素,区间以偏移量start和stop指定,如果要左边的第一个到最后的一个lrange key 0 -1。
移除列表中的元素:(不是删除,是取出,取出的元素不会回到列表中)
移除并返回列表key的头元素:
lpop key
移除并返回列表的尾元素:
rpop key
指定返回第几个元素:(与取出不同,该元素还在)
lindex key index
将返回key这个列表中,索引为index的这个元素。
获取列表中的元素个数:
llen key 如:llen languages
删除指定的元素:
lrem key count value
如:
lrem languages 0 php
根据参数 count 的值,移除列表中与参数 value 相等的元素。count的值可以是以下几种:
count > 0:从表头开始向表尾搜索,移除与value相等的元素,数量为count。
count < 0:从表尾开始向表头搜索,移除与 value相等的元素,数量为count的绝对值。
count = 0:移除表中所有与value 相等的值。
set集合的操作:(与列表不同,重复的算一个)
添加元素:set就是key
sadd set value1 value2.... 如: sadd team xiaotuo datuo
查看元素:
smembers set 如: smembers team
移除元素:
srem set member... 如: srem team xiaotuo datuo
查看集合中的元素个数:
scard set 如: scard team1
获取多个集合的交集:
sinter set1 set2 如: sinter team1 team2
获取多个集合的并集:
sunion set1 set2 如: sunion team1 team2
获取多个集合的差集:(以左边为参照,左边有右边没有的会显示)
sdiff set1 set2· 如:sdiff team1 team2
hash,哈希操作:
添加一个新值:
hset key field value
如:hset website baidu baidu.com
将哈希表key中的域field的值设为value。
如果key不存在,一个新的哈希表被创建并进行 HSET操作。如果域 field已经存在于哈希表中,旧值将被覆盖。
获取哈希中的field对应的值:
hget key field 如: hget website baidu
删除field中的某个field:
hdel key field 如: hdel website baidu
获取某个哈希中所有的field和value:
hgetall key 如: hgetall website
获取某个哈希中所有的field:
hkeys key 如: hkeys website
获取某个哈希中所有的值:
hvals key 如: hvals website
判断哈希中是否存在某个field:1是存在 0不存在
hexists key field 如: hexists website baidu
获取哈希中总共的键值对数:
hlen field 如: hlen website
事物操作:Redis事务可以一次执行多个命令,事务具有以下特征:
隔离操作:事务中的所有命令都会序列化、按顺序地执行,不会被其他命令打扰。
原子操作:事务中的命令要么全部被执行,要么全部都不执行。
开启一个事务:
multi
以后执行的所有命令,都在这个事务中执行的。
执行事务:
exec
会将在multi和exec中的操作一并提交。
取消事务:
discard (相当rollback 会将multi后的所有命令取消。)
监视一个或者多个key:
watch key...
监视一个(或多个)key,如果在事务执行之前这个(或这些) key被其他命令所改动,那么事务将被打断。
取消所有key的监视:
unwatch
发布/订阅操作:
发布订阅用在异步上
订阅某个频道的消息:
subscribe channel
>subscribe channel1 channel2 channel3
channel是一个通道,名称自定义
给某个频道发布消息:
publish channel message
>publish channel1 hello

这篇博客主要介绍了Redis数据库的使用,包括选择数据库的`select`命令,`save`机制的配置,如dbfilename指定的数据库存储位置。此外,还涵盖了Redis的安装流程,以及列表、集合、哈希和事物操作等核心功能。特别提到了哈希操作和事务的原子性和隔离性特点。最后,文章提及了发布/订阅机制在异步通信中的应用。
2646

被折叠的 条评论
为什么被折叠?



